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