Porting Miniport Driver OID Request Handling to NDIS 6.0

In NDIS 6.0, the MiniportOidRequest function replaces the NDIS 5.x MiniportQueryInformation and MiniportSetInformation functions. Also, the NDIS_OID_REQUEST structure replaces the NDIS_REQUEST structure.

NDIS calls a miniport driver's MiniportOidRequest function to send an OID request to the driver. As is the case with NDIS 5.x miniport drivers, NDIS serializes OID requests so it does not call MiniportOidRequest until any pending request is complete. In contrast with MiniportQueryInformation and MiniportSetInformation, which NDIS can call only at IRQL = DISPATCH_LEVEL, NDIS can call the MiniportOidRequest function at IRQL <= DISPATCH_LEVEL.

NDIS 6.0 miniport drivers should provide a MiniportCancelOidRequest function. NDIS calls MiniportCancelOidRequest to cancel an OID request. For NDIS 6.0 miniport drivers, NDIS does not reset the miniport adapter to cancel OID requests.

If the MiniportOidRequest function returns NDIS_STATUS_PENDING, the miniport driver must subsequently call the NdisMOidRequestComplete function to complete the request.

The NDIS_OID_REQUEST structure differs from NDIS_REQUEST in that it can specify a time-out and a request ID.

For more information about handling OID requests in a miniport driver, see OID Requests for an Adapter.