Status Indications in a Protocol 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.
An protocol driver with a connectionless lower edge is required to supply a ProtocolStatusfunction and a ProtocolStatusCompletefunction. NDIS calls ProtocolStatuswhen an underlying connectionless miniport driver calls NdisMIndicateStatusto report a change in its hardware status. NDIS calls ProtocolStatuswhen the status change begins. Subsequently, the underlying miniport driver calls NdisMIndicateStatusComplete. When this occurs, NDIS calls ProtocolStatusCompleteto carry out any postprocessing for the status change. However, a miniport driver need not deliver NdisMIndicateStatusCompleteindications in one-to-one correspondence with its NdisMIndicateStatusindications. It can issue a single status-complete indication for several status indications.
A connection-oriented protocol driver is required to supply a ProtocolCoStatusfunction and a ProtocolStatusCompletefunction. NDIS calls ProtocolCoStatuswhen an underlying connection-oriented miniport driver calls NdisMCoIndicateStatusto report a change in its hardware status. NDIS calls ProtocolCoStatuswhen the status change begins.
Following are the possible values for the GeneralStatusparameter of Protocol(Co)Status:
NDIS_STATUS_MEDIA_CONNECT and NDIS_STATUS_MEDIA_DISCONNECT. When a miniport driver senses that the network connection has been lost, it calls NdisMIndicateStatus or NdisMCoIndicateStatus with NDIS_STATUS_MEDIA_DISCONNECT. When the connection is restored, it must then call NdisM(Co)IndicateStatus with NDIS_STATUS_MEDIA_CONNECT.
NDIS_STATUS_RESET_START and NDIS_STATUS_RESET_END are reported to both Protocol(Co)Status and ProtocolStatusComplete as explained in Protocol Driver Reset Operations.
NDIS_STATUS_LINE_UP is indicated if the protocol driver is layered over NDISWAN while an underlying WAN-capable miniport driver has an established connection with a remote node. The protocol driver exchanges handles for an active connection on which it can send and receive as well as query the connection for call-specific information. See WAN Miniport Drivers.
NDIS_STATUS_RING_STATUS or any other medium-specific status value, for which StatusBuffer provides more detailed information about the status. For instance, problems specific to a Token Ring medium.