Maintaining State Information (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 NDIS WAN miniport driver must track changes in the state of the links it manages such as the current call, address, and line state, and report any changes to NDISWAN by calling NdisMIndicateStatus.
A miniport driver must always send a call state-change message whenever the state of a call changes. The reported call states have the form LINECALLSTATE_XXX and LINECALLINFOSTATE_XXX. There is no filtering of call state messages.
Some typical call states a miniport driver reports include LINECALLSTATE_IDLE, LINECALLSTATE_CONNECTED, LINECALLSTATE_OFFERING, LINECALLSTATE_DISCONNECTED, LINECALLINFOSTATE_CALLERID and LINECALLINFOSTATE_MEDIAMODE.
Changes in the line state or the address state are only indicated if enabled by a previous OID_TAPI_SET_STATUS_MESSAGESrequest(s) to the miniport driver.
Address state changes that a miniport driver can be enabled to report have the form LINEADDRESSSTATE_XXX and include such states as LINEADDRESSSTATE_INUSEMANY and LINEADDRESSSTATE_FORWARD.
Line state changes that a miniport driver can be enabled to report have the form LINEDEVSTATE_XXX and include such states as LINEDEVSTATE_RINGING, LINEDEVSTATE_CONNECTED, LINEDEVSTATE_OPEN and LINEDEVSTATE_CLOSE.
An NDIS WAN miniport driver can receive one or more OID_TAPI_SET_STATUS_MESSAGES request(s) to inform the miniport driver of which status changes it must report. Initially, a miniport driver should consider all line and address status indications disabled with the exception of LINEDEVSTATE_REINIT, which is never disabled.
When an NDIS WAN miniport driver calls NdisMIndicateStatusto report such state changes, the GeneralStatusargument for reporting TAPI status changes is always NDIS_STATUS_TAPI_INDICATION. The StatusBufferparameter points to a structure of type NDIS_TAPI_EVENT. The miniport driver must pass the htLineand htCallmembers that identify the line and call to which the state change applies. The ulMsgmember of the NDIS_TAPI_EVENT structure is set to, for example, LINE_CALLSTATE and ulParam1describes the state being reported.