NdisOidComplete rule (ndis)
The NdisOidComplete rule verifies that an NDIS miniport driver completes an OID correctly.
The miniport driver must complete the OID request operations with the allowable NTSTATUS values.
If the OID is: | Can only be completed with the following NTSTATUS values: |
---|---|
OID_PNP_SET_POWER |
NDIS_STATUS_NOT_ACCEPTED NDIS_STATUS_SUCCESS NDIS_STATUS_PENDING |
OID_RECEIVE_FILTER_CLEAR_FILTER OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA OID_RECEIVE_FILTER_FREE_QUEUE OID_NIC_SWITCH_FREE_VF OID_NIC_SWITCH_DELETE_SWITCH OID_802_3_DELETE_MULTICAST_ADDRESS OID_PM_REMOVE_WOL_PATTERN OID_PM_REMOVE_PROTOCOL_OFFLOAD OID_TUNNEL_INTERFACE_RELEASE_OID |
NDIS_STATUS_NOT_ACCEPTED NDIS_STATUS_REQUEST_ABORTED NDIS_STATUS_SUCCESS NDIS_STATUS_PENDING |
A miniport driver must not call the NdisMOidRequestComplete function with the final status of the request operation as NDIS_STATUS_PENDING.
In addition, if the OID is: | Can only be completed with the following NTSTATUS values: |
---|---|
OID_PNP_SET_POWER |
NDIS_STATUS_NOT_ACCEPTED NDIS_STATUS_SUCCESS |
OID_RECEIVE_FILTER_CLEAR_FILTER OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA OID_RECEIVE_FILTER_FREE_QUEUE OID_NIC_SWITCH_FREE_VF OID_NIC_SWITCH_DELETE_SWITCH OID_802_3_DELETE_MULTICAST_ADDRESS OID_PM_REMOVE_WOL_PATTERN OID_PM_REMOVE_PROTOCOL_OFFLOAD OID_TUNNEL_INTERFACE_RELEASE_OID |
NDIS_STATUS_NOT_ACCEPTED NDIS_STATUS_REQUEST_ABORTED NDIS_STATUS_SUCCESS |
Driver model: NDIS
Bug check(s) found with this rule: Bug Check 0xC4: DRIVER_VERIFIER_DETECTED_VIOLATION (0x00091001)
How to test
At run time |
---|
Run Driver Verifier and select the NDIS/WIFI verification option. This rule is also tested with the DDI compliance checking option. |
Applies to
MiniportDevicePnPEventNotify MiniportOidRequest NdisMOidRequestComplete