The DHCP_ALL_OPTIONS structure contains all the option definitions created on the DHCP server. This includes the vendor-specific option definition as well as the default vendor option definition. This structure is used in the R_DhcpGetAllOptions (section 3.2.4.30) method.

 typedef struct _DHCP_ALL_OPTIONS {
   DWORD Flags;
   LPDHCP_OPTION_ARRAY NonVendorOptions;
   DWORD NumVendorOptions;
   [size_is(NumVendorOptions)] struct {
     DHCP_OPTION Option;
     LPWSTR VendorName;
     LPWSTR ClassName;
   }* VendorOptions;
 } DHCP_ALL_OPTIONS,
  *LPDHCP_ALL_OPTIONS;

Flags: This is of type DWORD. This MUST be set to zero when sent and ignored on receipt.

NonVendorOptions: This is a pointer of type DHCP_OPTION_ARRAY (section 2.2.1.2.26) structure that points to the location that contains all non-vendor-specific options created on the DHCP server.

NumVendorOptions: This is of type DWORD, containing the number of vendor-specific options created on the DHCP server. This field specifies the number of vendor-specific options defined in the subsequent field, the VendorOptions member.

VendorOptions: This structure defines the vendor-specific options.

Option: This is of type DHCP_OPTION (section 2.2.1.2.25), containing the option definition for the specific vendor class and user class.

VendorName: A pointer to a null-terminated Unicode string that specifies the name of a vendor class for a specific option definition. There is no restriction on the length of this Unicode string.

ClassName: A pointer to a null-terminated Unicode string that specifies the name of a user class for a specific user class. There is no restriction on the length of this Unicode string.