Porting Protocol Driver OID Request Handling to NDIS 6.0
In NDIS 6.0, the NdisOidRequest function replaces the NDIS 5.x NdisRequest function. Also, the NDIS_OID_REQUEST structure replaces the NDIS_REQUEST structure.
A protocol driver's calls NdisOidRequest function to send an OID request to the underlying miniport adapter. As is the case with NDIS 5.x protocol drivers, NDIS serializes OID requests so it does not pass the request to the underlying driver until any pending request is completed.
NDIS 6.0 protocol drivers can call NdisCancelOidRequest to cancel an OID request. In NDIS 6.0, calls to the NdisReset function are not allowed. NDIS 6.0 protocol drivers cannot reset the underlying miniport driver.
If the NdisOidRequest function returns NDIS_STATUS_PENDING, NDIS subsequently calls the ProtocolOidRequestComplete(formerly ProtocolRequestComplete) function to complete the request.
To improve system performance, NDIS 6.0 protocol drivers should avoid OID requests when possible. For example, during bind operations, much of the information that was formerly available only through OID requests is available in the NDIS_BIND_PARAMETERS structure. To determine link status, use the status indications from underlying drivers instead of OID queries.
The NDIS_OID_REQUEST structure differs from NDIS_REQUEST in that it can specify a time-out and a request identifier.
For more information about OID requests in a protocol driver, see Protocol Driver OID Requests.