|This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.|
This function forwards a request to the underlying driver that it query the capabilities or status of its NIC or that it set the state of its NIC.
VOID NdisRequest( OUT PNDIS_STATUS Status , IN NDIS_HANDLE NdisBindingHandle , IN PNDIS_REQUEST NdisRequest );
|NDIS_STATUS_SUCCESS||The requested operation completed successfully.|
|NDIS_STATUS_PENDING||The request is being handled asynchronously, and the caller's ProtocolRequestCompletefunction will be called when it is completed.|
|NDIS_STATUS_INVALID_OID||The OID_ XXXcode specified in the Oidmember of the NDIS_REQUEST-structured buffer at NdisRequestis invalid or unsupported by the underlying driver.|
|NDIS_STATUS_INVALID_LENGTH or NDIS_STATUS_BUFFER_TOO_SHORT||The value specified in the InformationBufferLengthmember of the NDIS_REQUEST-structured buffer at NdisRequestdoes not match the requirements for the given OID_ XXXcode. If the information buffer is too small, the BytesNeededmember contains the correct value for InformationBufferLengthon return from this function.|
|NDIS_STATUS_INVALID_DATA||The data supplied at InformationBufferin the specified NDIS_REQUESTstructure is invalid for the given OID_ XXXcode.|
|NDIS_STATUS_NOT_SUPPORTED or NDIS_STATUS_NOT_RECOGNIZED||The underlying driver does not support the requested operation.|
|NDIS_STATUS_RESOURCES||The request could not be satisfied due to a resource shortage. Usually, this return indicates that an attempt to allocate memory was unsuccessful, but it does not necessarily indicate that the same request, submitted later, will fail for the same reason.|
|NDIS_STATUS_NOT_ACCEPTED||The underlying driver attempted the requested operation, usually a set, on its NIC but it was failed by the netcard. For example, an attempt to set too many multicast addresses might cause the return of this value.|
|NDIS_STATUS_CLOSING or NDIS_STATUS_CLOSING_INDICATING||The underlying driver failed the requested operation because a close is in progress.|
|NDIS_STATUS_RESET_IN_PROGRESS||The underlying NIC driver cannot satisfy the request at this time because it is currently resetting the netcard. The caller's ProtocolStatusfunction was or will be called with NDIS_STATUS_RESET_START to indicate that a reset is in progress. This return value does not necessarily indicate that the same request, submitted later, will fail for the same reason.|
|NDIS_STATUS_FAILURE||This value is usually a nonspecific default, returned when none of the more specific NDIS_STATUS_ XXXcaused the underlying driver to fail the request.|
The Windows CE version of this function does not handle statistics requests in which NdisRequest== NdisRequestQueryStatistics. For query and set requests, this function intercepts OID_GEN_CURRENT_PACKET_FILTER, OID_GEN_CURRENT_LOOKAHEAD, OID_GEN_PROTOCOL_OPTIONS, and OID_802_3_MULTICAST_LIST. All others are passed to the miniport driver.
A protocol driver must allocate sufficient memory for the information buffer associated with the OID_ XXXof the operation it requests. The driver also must allocate and set up the buffer at NdisRequestbefore it calls this function. Both buffers must be allocated from a nonpaged pool because the underlying driver runs at raised IRQL while processing the request.
For callers layered above an intermediate NDIS driver, this function forwards a request to the next-lower driver that it return information about its own capabilities or directs that driver to handle specific functionality in a caller-determined manner. If the next-lower driver is an NDIS intermediate driver, it can call this function with an OID-specific request of its own before completing the request originally submitted by the higher-level protocol.
Some errors returned at Statusare recoverable, including the following:
This means that a driver can modify the packet at NdisRequestappropriately to correct the OID_ XXXcode and/or the size or contents of the buffer at InformationBufferand resubmit the request packet to this function. The same packet might be satisfied on resubmission to this function if the original call indicated a reset in progress or that a resource shortage, which might be temporary, prevented that request from being carried out.
The NDIS library maintains bindings for underlying miniport drivers. NDIS can return information for binding-specific queries if a specified object identifier is associated with a system-defined medium type for which the system provides a filter library.
A driver that calls this function can be running at IRQL <= DISPATCH_LEVEL.
|Runs on||Versions||Defined in||Include||Link to|
|Windows CE OS||2.0 and later||Ndis.h|
Note This API is part of the complete Windows CE OS package as provided by Microsoft. The functionality of a particular platform is determined by the original equipment manufacturer (OEM) and some devices may not support this API.
Last updated on Tuesday, July 13, 2004