ProtocolCoAfRegisterNotify (NDIS 5.1) function
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 ProtocolCoAfRegisterNotify function is used by connection-oriented NDIS clients. All connection-oriented NDIS clients must have fully functional ProtocolCoAfRegisterNotify functions. Stand-alone connection-oriented call managers have registered ProtocolCoAfRegisterNotify functions that simply return control.
VOID ProtocolCoAfRegisterNotify( _In_ NDIS_HANDLE ProtocolBindingContext, _In_ PCO_ADDRESS_FAMILY AddressFamily );
- ProtocolBindingContext [in]
Specifies the handle to the client-allocated context area in which the client protocol maintains per-binding run-time state. The client's ProtocolBindAdapter function supplied this handle when it called NdisOpenAdapter.
- AddressFamily [in]
Pointer to a buffer describing the signaling-protocol support provided by a call manager that just registered these services with NDIS by calling NdisCmRegisterAddressFamily or NdisMCmRegisterAddressFamily.
A call to ProtocolCoAfRegisterNotify advertises a particular call manager's or MCM driver's call-management services on an underlying connection-oriented NIC to which the client is bound.
ProtocolCoAfRegisterNotify examines the data at AddressFamily to determine whether the client can use the services of this particular call manager. Whether the client can make modifications in the (M)CM-supplied data at AddressFamily depends on the particular signaling-protocol support of the call manager.
If the client finds the offered call-management services unacceptable, ProtocolCoAfRegisterNotify returns control, and NDIS might call ProtocolCoAfRegisterNotify again with the same ProtocolBindingContext handle and an AF specification supplied by this or another call manager also bound to the same underlying NIC driver. Otherwise, ProtocolCoAfRegisterNotify allocates a per-AF context area for the client and calls NdisClOpenAddressFamily with the AddressFamily pointer. If this call succeeds, the client has registered its ProtocolClXxx functions with NDIS for subsequent connection-oriented operations using this call manager's services.
For example, ProtocolCoAfRegisterNotify or ProtocolClOpenAfComplete might call NdisInitializeNPagedLookasideList one or more times in preparation for dynamic allocations and releases of per-SAP, per-VC, and/or per-party context areas that the client will need subsequently.
If it accepts incoming calls, a client's ProtocolCoAfRegisterNotify or ProtocolClOpenAfComplete function usually registers one or more SAPs with the call manager. After opening that call manager's AF, the client might proceed to allocate a per-SAP state area and call NdisClRegisterSap one or more times with the NdisAfHandle it obtained from NdisClOpenAddressFamily. If it makes outgoing calls, the client might proceed to allocated a per-VC state area and create a VC with NdisCoCreateVc in anticipation of an incoming request from one of its own clients to make an outgoing call to a remote node.