NDIS_REQUEST (Compact 2013)

3/26/2014

This structure specifies a packet set up by NDIS or by a protocol for a call to the NdisRequest function. NDIS submits these requests to the underlying driver's MiniportQueryInformation or MiniportSetInformation function.

Syntax

typedef struct _ NDIS_REQUEST {
  UCHAR MacReserved[16];
  NDIS_REQUEST_TYPE RequestType;
    union _DATA {
      struct QUERY_INFORMATION {
      NDIS_OID Oid;
      PVOID InformationBuffer;
      UINT InformationBufferLength;
      UINT BytesWritten;
      UINT BytesNeeded;
    } QUERY_INFORMATION;
      struct SET_INFORMATION {
      NDIS_OID Oid;
      PVOID InformationBuffer;
      UINT InformationBufferLength;
      UINT BytesRead;
      UINT BytesNeeded;
    } SET_INFORMATION;
  } DATA;
} NDIS_REQUEST, *PNDIS_REQUEST;

Members

  • MacReserved
    Specifies a 16-byte area reserved for the underlying driver.
  • RequestType
    Specifies the request type as one of the following NDIS_REQUEST_TYPE values.

    Value

    Description

    NdisRequestQueryInformation

    Specifies a query-information request. NDIS forwards such a request to the underlying driver's MiniportQueryInformation function.

    NdisRequestSetInformation

    Specifies a set-information request. NDIS forwards such a request to the underlying driver's MiniportSetInformation function.

    NdisRequestQueryStatistics

    Specifies a query-statistics request. For most statistics queries, NDIS satisfies the request itself. Otherwise, NDIS forwards such requests to the underlying driver's MiniportQueryInformation function. This kind of request originates in a user-mode application, never in a protocol driver.

    NdisRequestOpen

    This type is obsolete. A protocol driver calls NdisOpenAdapter instead.

    NdisRequestClose

    This type is obsolete. A protocol driver calls NdisCloseAdapter instead.

    NdisRequestSend

    This type is obsolete. A protocol driver calls NdisSend or NdisSendPackets instead.

    NdisRequestTransferData

    This type is obsolete. A protocol driver calls NdisTransferData instead.

    NdisRequestReset

    This type is obsolete. A protocol driver calls NdisReset instead.

    NdisRequestGeneric1

    Specifies a NIC-driver-specific request.

    NdisRequestGeneric2

    Specifies a NIC-driver-specific request.

    NdisRequestGeneric3

    Specifies a NIC-driver-specific request.

    NdisRequestGeneric4

    Specifies a NIC-driver-specific request.

    For the NdisRequestQueryInformation, NdisRequestSetInformation, and NdisRequestQueryStatistics values, the OID_XXX specified in the Oid member must be compatible with the kind of operation requested.

  • Oid
    Pointer to the object identifier for the requested operation. The value is an OID_XXX code.
  • InformationBuffer
    Pointer to an information buffer into which the underlying driver or NDIS returns the requested information for queries or from which the underlying driver reads caller-supplied information for sets.
  • InformationBufferLength
    Specifies the size, in bytes, of the information buffer. The object identifier determines the required buffer length.
  • BytesWritten
    Specifies the number of bytes that the underlying driver or NDIS transfers into the information buffer for query-information requests. If NdisRequest returns NDIS_STATUS_INVALID_LENGTH, the value of this member is meaningless.
  • BytesRead
    Specifies the number of bytes that the underlying driver read from the information buffer for set-information requests.
  • BytesNeeded
    Specifies the number of bytes needed to return query information or to perform the set operation requested by the given OID_XXX code.

    If NdisRequest returns NDIS_STATUS_SUCCESS, the value of this member is meaningless. If the InformationBufferLength member is too small for the given object identifier on a query, this member indicates how large a buffer is required to satisfy the request. If the information buffer does not contain sufficient data for the given object identifier on a set request, this member indicates how much data is required.

Remarks

This structure contains a DATA substructure for each kind of operation that a protocol driver can request of an underlying driver. Before it calls NdisRequest, the protocol fills in the relevant members of the substructure that represents the query or set operation that it specified in the Oid member. NDIS or the underlying driver fills in the remaining members before it returns control to the caller.

The NdisRequestGenericXXX request type values are available for network adapter drivers that create their own internal requests. To indicate a requested operation, an network adapter driver sets an internal variable to one of these types.

Requirements

Header

ndis.h

See Also

Reference

NDIS 5.x Legacy Structures
NdisCloseAdapter
NdisMQueryInformationComplete
NdisMSetInformationComplete
NdisOpenAdapter
NdisRequest
NdisReset
NdisSend
NdisSendPackets
NdisTransferData
NDIS 5.x Legacy Reference