Miniport adapter OID request serialization

All OID requests to a miniport adapter are serialized by NDIS except for direct OID requests, which were designed not be serialized. A miniport adapter will not receive a new OID request until any pending request is completed. Therefore, miniport adapters must complete OIDs promptly.

Note

We recommend completing an OID request in less than 1000ms, or 1 second, so the user will not notice any delay in performance. For specific information about timing OID requests, see the NdisTimedOidComplete Driver Verifier rule.

One exception to this OID serialization rule is for Wi-Fi miniport adapters that use WDI, which may see a second OID request if they take too long to complete the previous OID. The following example explains what happens in this situation:

  1. The first OID request is passed to the WDI miniport adapter.
  2. The NIC does not respond to the OID within the time limit specified by the driver.
  3. WDI calls the driver's MINIPORT_WDI_ADAPTER_HANG_DIAGNOSE callback function to collect diagnostic data about the NIC.
  4. The first OID is no longer considered to block serialization. This means the WDI miniport adapter can now receive other OID requests, even though the first OID is serialized. However, these other OIDS are also serialized, which means the WDI miniport adapter will not pend more than 2 OIDs simultaneously (the first OID that is still hung and a second OID).

For more information about WDI UE hang detection, see UE hang detection: Steps 1-14.

For more information about OID requests in NDIS, see Simplifying your OID request handler on the NDIS blog.