Поделиться через


DOT11_BYTE_ARRAY (Compact 2013)

3/26/2014

This structure comes before 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 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)

  • uNumOfBytes
    Number of entries in the ucBuffer array.
  • uTotalNumOfBytes
    Maximum number of bytes that the ucBuffer array requires
  • ucBuffer
    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 complete 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 complete 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 complete 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 complete 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 complete DOT11_BYTE_ARRAY structure. The miniport driver must also copy the complete DOT11_BYTE_ARRAY structure to the InformationBuffer member.
    • Return NDIS_STATUS_SUCCESS from its MiniportOidRequest function.

Requirements

Header

windot11.h

See Also

Reference

Native 802.11 Data Types
MiniportOidRequest
NDIS_OBJECT_HEADER
OID_DOT11_ENUM_BSS_LIST
DOT11_BSS_ENTRY
Native 802.11 Wireless LAN Reference