2.2.1.2.55 DHCP_SERVER_CONFIG_INFO_VQ

The DHCP_SERVER_CONFIG_INFO_VQ structure defines settings for the DHCP server. This structure is an extension of the DHCP_SERVER_CONFIG_INFO_V4 (section 2.2.1.2.54) structure and is used in the R_DhcpServerSetConfigVQ (section 3.1.4.42) method.

 typedef struct _DHCP_SERVER_CONFIG_INFO_VQ {
   DWORD APIProtocolSupport;
   LPWSTR DatabaseName;
   LPWSTR DatabasePath;
   LPWSTR BackupPath;
   DWORD BackupInterval;
   DWORD DatabaseLoggingFlag;
   DWORD RestoreFlag;
   DWORD DatabaseCleanupInterval;
   DWORD DebugFlag;
   DWORD dwPingRetries;
   DWORD cbBootTableString;
   [size_is(cbBootTableString)] WCHAR* wszBootTableString;
   BOOL fAuditLog;
   BOOL QuarantineOn;
   DWORD QuarDefFail;
   BOOL QuarRuntimeStatus;
 } DHCP_SERVER_CONFIG_INFO_VQ,
  *LPDHCP_SERVER_CONFIG_INFO_VQ;

APIProtocolSupport: This is of type DWORD, defining the type of RPC protocol used by the DHCP server to register with RPC. The following type MUST be supported.

Value

Meaning

DHCP_SERVER_USE_RPC_OVER_TCPIP

0x00000001

RPC protocol over TCP is used by the DHCP server to register.

The following types MAY<14> be supported.

Value

Meaning

DHCP_SERVER_USE_RPC_OVER_NP

0x00000002

RPC protocol over named pipes is used by the DHCP server to register.

DHCP_SERVER_USE_RPC_OVER_LPC

0x00000004

RPC protocol over LPC is used by the DHCP server to register.

DHCP_SERVER_USE_RPC_OVER_ALL

0x00000007

The DHCP server supports all of the preceding protocols.

DatabaseName: A pointer of type LPWSTR to a null-terminated Unicode string that represents the database name that is used by the DHCP server for persistent storage. There is no restriction on the length of this Unicode string. This field MUST be convertible to an OEM or ANSI character string.

DatabasePath: A pointer of type LPWSTR to a null-terminated Unicode string that contains the absolute path where the DHCP server database is stored. The maximum number of characters allowed in this field is 248, including the terminating null character. This field MUST be convertible to an OEM or ANSI character string.

BackupPath: A pointer of type LPWSTR to a null-terminated Unicode string that contains the absolute path for the storage that is used by the DHCP server for backup. The maximum number of characters allowed in this field is 248, including the terminating null character. This field MUST be convertible to an OEM or ANSI character string.

BackupInterval: This is of type DWORD, containing the interval in minutes between backups of the DHCP server database.

DatabaseLoggingFlag: This is of type DWORD (used as a BOOL flag), indicating the transaction logging mode of the DHCP server. The value 1 indicates that transaction logging mode is enabled for the DHCP server, and zero indicates that transaction logging mode is disabled for the DHCP server.

RestoreFlag: This is of type DWORD (used as a BOOL flag), and if this setting is TRUE, the DHCP server loads the DHCP database from the backup database on DHCP server startup. The default value of this flag is FALSE.

DatabaseCleanupInterval: This is of type DWORD, and it specifies the time interval in minutes over which the scavenger deletes the DOOMED IPv4 DHCP client lease records from the DHCP server database.

DebugFlag: A flag that specifies the level of logging done by the DHCP server. The following table defines the set values that can be used. Specifying 0xFFFFFFFF enables all types of logging.

LOW WORD bitmask (0x0000FFFF) for low-frequency debug output.

Value

Meaning

DEBUG_ADDRESS

0x00000001

Enable IP-address-related logging.

DEBUG_CLIENT

0x00000002

Enable DHCP-client-API-related logging.

DEBUG_PARAMETERS

0x00000004

Enable DHCP-server-parameters-related logging.

DEBUG_OPTIONS

0x00000008

Enable DHCP-options-related logging.

DEBUG_ERRORS

0x00000010

Enable DHCP-errors-related logging.

DEBUG_STOC

0x00000020

Enable DHCPv4 and DCHPv6-protocol-errors-related logging.

DEBUG_INIT

0x00000040

Enable DHCP-server-initialization-related logging.

DEBUG_SCAVENGER

0x00000080

Enable scavenger's-error-related logging.

DEBUG_TIMESTAMP

0x00000100

Enable timing-errors-related logging.

DEBUG_APIS

0x00000200

Enable DHCP-APIs-related logging.

DEBUG_REGISTRY

0x00000400

Enable the logging of errors caused by registry setting operations.

DEBUG_JET

0x00000800

Enable the logging of the DHCP server database errors.

DEBUG_THREADPOOL

0x00001000

Enable the logging related to executing thread pool operations.

DEBUG_AUDITLOG

0x00002000

Enable the logging related to errors caused by audit log operations.

DEBUG_QUARANTINE

0x00004000

Enable the logging of errors caused by quarantine errors.

DEBUG_MISC

0x00008000

Enable the logging caused by miscellaneous errors.

HIGH WORD bitmask (0xFFFF0000) for high-frequency debug output, that is, more verbose.

Value

Meaning

DEBUG_MESSAGE

0x00010000

Enable the logging related to debug messages.

DEBUG_API_VERBOSE

0x00020000

Enable the logging related to DHCP API verbose errors.

DEBUG_DNS

0x00040000

Enable the logging related to DNS messages.

DEBUG_MSTOC

0x00080000

Enable the logging related to multicast protocol layer errors.

DEBUG_TRACK

0x00100000

Enable the logging tracking specific problems.

DEBUG_ROGUE

0x00200000

Enable the logging related to a ROGUE DHCP server.

DEBUG_PNP

0x00400000

Enable the logging related to PNP interface errors.

DEBUG_PERF

0x01000000

Enable the logging of performance-related messages.

DEBUG_ALLOC

0x02000000

Enable the logging of allocation-related and deallocation-related messages.

DEBUG_PING

0x04000000

Enable the logging of synchronous ping–related messages.

DEBUG_THREAD

0x08000000

Enable the logging of thread-related messages.

DEBUG_TRACE

0x10000000

Enable the logging for tracing through code messages.

DEBUG_TRACE_CALLS

0x20000000

Enable the logging for tracing through piles of code.

DEBUG_STARTUP_BRK

0x40000000

Enable the logging related to debugger break during setup messages.

DEBUG_LOG_IN_FILE

0x80000000

Enable the logging of debug output in a file.

dwPingRetries: This is of type DWORD, specifying the number of retries that the DHCP server can verify whether a specific address is already in use by any client by issuing a ping before issuing any address to DHCP client (valid range: 0–5, inclusive).

cbBootTableString: This is of type DWORD, containing the size of the BOOT TABLE given to the DHCP client. The maximum value of this field is 1048576.

wszBootTableString: A pointer of type WCHAR* to a null-terminated Unicode string that contains the absolute path of the BOOT TABLE given to the DHCP client. The size of this string is limited to 1 MB.

fAuditLog: This is of type BOOL, representing whether an audit log needs to be written by the DHCP server. This member defaults to a value of TRUE, which indicates that the DHCP server writes an audit log.

QuarantineOn: This is of type BOOL (a global flag), indicating whether quarantine is on/off on the DHCP server. This member defaults to a value of FALSE, which indicates that quarantine is off on the DHCP server.

QuarDefFail: This is of type DWORD and determines the default policy for a DHCP NAP server when an NPS server is not reachable. The range of permissible values is a subset of those described in QuarantineStatus (section 2.2.1.1.11). Valid values are NOQUARANTINE, RESTRICTEDACCESS, and DROPPACKET. This member defaults to a value of NOQUARANTINE.

QuarRuntimeStatus: This flag determines whether NAP is enabled on the DHCP server (Scope).