NDIS_REQUEST

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.

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 type 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 type 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 carry out 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 type of operation that a protocol driver can request of an underlying driver. Before calling 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 NIC drivers that create their own internal requests. To indicate a requested operation, an NIC driver sets an internal variable to one of these types.

Requirements

OS Versions: Windows CE .NET 4.0 and later.
Header: Ndis.h.

See Also

NdisCloseAdapter | NdisMQueryInformationComplete | NdisMSetInformationComplete | NdisOpenAdapter | NdisRequest | NdisReset | NdisSend | NdisSendPackets | NdisTransferData

 Last updated on Tuesday, May 18, 2004

© 1992-2003 Microsoft Corporation. All rights reserved.