2.8 Status Indications in a Protocol Driver
A protocol driver is required to supply both ProtocolStatus and
ProtocolStatusComplete functions. NDIS calls ProtocolStatus when an underlying
NDIS driver calls NdisMIndicateStatus to report a change in its NIC.
ProtocolStatus is called when the status change begins. If the action
indicated by the status message is not complete when ProtocolStatus is called,
NdisMIndicateStatusComplete is subsequently called by the underlying
NIC driver. When this occurs, ProtocolStatusComplete is called to carry out
any postprocessing indicated by the status change. Examples of GeneralStatus
reported to ProtocolStatus include:
-
NDIS_STATUS_CLOSING ¾ This status and the
actions of ProtocolStatus were already discussed in Section
2.7.
-
NDIS_STATUS_RESET_START and NDIS_STATUS_RESET_END ¾ In this case, both of these statuses are reported
to both ProtocolStatus and ProtocolStatusComplete as explained already in Section
2.6.
-
NDIS_STATUS_LINE_UP ¾ This status is indicated
if the protocol driver is layered over NDISWAN while an underlying WAN-capable
NIC 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
Part 2, Chapter 5 and Chapter
6, for more information on WAN 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.