DOT11_BYTE_ARRAY structure (windot11.h)

Important

WiFiCx is the new Wi-Fi driver model released in Windows 11. We recommend that you use WiFiCx to take advantage of the latest features. The WDI driver model is now in maintenance mode and will only receive high priority fixes.

The DOT11_BYTE_ARRAY structure precedes a list of variable-length structures in the InformationBuffer member of the MiniportOidRequest function's OidRequest parameter.

Syntax

typedef struct DOT11_BYTE_ARRAY {
  NDIS_OBJECT_HEADER Header;
  ULONG              uNumOfBytes;
  ULONG              uTotalNumOfBytes;
  UCHAR              ucBuffer[1];
} DOT11_BYTE_ARRAY, *PDOT11_BYTE_ARRAY;

Members

Header

The type, revision, and size of the DOT11_BYTE_ARRAY structure. This member is formatted as an NDIS_OBJECT_HEADER structure.

The miniport driver must set the members of Header to the following values:

Type

This member must be set to NDIS_OBJECT_TYPE_DEFAULT.

Revision

This member must be set to the revision of the variable-length structures which follow the DOT11_BYTE_ARRAY structure. For more information about the revision of these structures, refer to the object identifiers (OIDS) listed in the "See Also" section.

Size

This member must be set to sizeof(DOT11_BYTE_ARRAY).

For more information about these members, see NDIS_OBJECT_HEADER.

uNumOfBytes

The number of bytes in the ucBuffer array.

uTotalNumOfBytes

The maximum number of bytes that the ucBuffer array requires.

ucBuffer[1]

The list of variable-length structures.

Remarks

The type of structures stored in the ucBuffer array depends on the OID set and query request. For example, when queried by OID_DOT11_ENUM_BSS_LIST, a miniport driver stores one or more DOT11_BSS_ENTRY structures in the ucBuffer array.

When queried by an OID that uses the DOT11_BYTE_ARRAY structure, the miniport driver must verify that the InformationBuffer member of the MiniportOidRequest function's OidRequest parameter is large enough to return the entire structure, including all entries in the ucBuffer array. The value of the InformationBufferLength member of the OidRequest parameter determines what the miniport driver must do, as the following list shows:

  • If the value of the InformationBufferLength member is less than the length, in bytes, of the entire DOT11_BYTE_ARRAY structure, the miniport driver must do the following:
    • For the OidRequest parameter, set the BytesWritten member to zero and the BytesNeeded member to the length, in bytes, of the entire DOT11_BYTE_ARRAY structure
    • Fail the query request by returning NDIS_STATUS_BUFFER_OVERFLOW from its MiniportOidRequest function.
  • If the value of the InformationBufferLength member is greater than or equal to the length, in bytes, of the entire DOT11_BYTE_ARRAY structure, the miniport driver must do the following to complete a successful query request:
    • For the DOT11_BYTE_ARRAY structure, set the uNumOfBytes and uTotalNumOfBytes members to the total number of entries in the ucBuffer array.
    • For the OidRequest parameter, set the BytesNeeded member to zero and the BytesWritten member to the length, in bytes, of the entire DOT11_BYTE_ARRAY structure. The miniport driver must also copy the entire DOT11_BYTE_ARRAY structure to the InformationBuffer member.
    • Return NDIS_STATUS_SUCCESS from its MiniportOidRequest function.

Requirements

Requirement Value
Minimum supported client Available in Windows Vista and later versions of the Windows operating systems.
Header windot11.h (include Ndis.h)

See also

OID_DOT11_CIPHER_KEY_MAPPING_KEY

OID_DOT11_ENUM_BSS_LIST

NDIS_OBJECT_HEADER