Status Indications in an Intermediate Driver (NDIS 5.1)
Note NDIS 5. x has been deprecated and is superseded by NDIS 6. x. For new NDIS driver development, see Network Drivers Starting with Windows Vista. For information about porting NDIS 5. x drivers to NDIS 6. x, see Porting NDIS 5.x Drivers to NDIS 6.0.
The implementation of status indications in intermediate drivers is nearly identical to the implementation in protocol drivers. For more information about intermediate driver status indications, see Status Indications in a Protocol Driver.
Intermediate driver status indications differ from protocols as follows:
NDIS_STATUS_RESET_START and NDIS_STATUS_RESET_END are reported to both Protocol(Co)Status and ProtocolStatusComplete as explained in Intermediate Driver Reset Operations.
When an intermediate driver receives a status indication, it indicates it up to the higher-level drivers by calling NdisMIndicateStatus only if the status indication causes the intermediate driver to change its internal state in a way that affects the operation of its MiniportXxx functions. That is, if the status indicated to the intermediate driver causes the driver to fail sends or requests, it can pass the status indication to the higher-level drivers which presumably will then hold off on submitting sends and requests. If, however, the intermediate driver continues to accept sends and requests, perhaps queuing them internally, it should not pass the status indication up.