NdisCmRegisterAddressFamilyEx function

The NdisCmRegisterAddressFamilyEx function registers an address family (AF) for communication between CoNDIS drivers.

Syntax


NDIS_STATUS NdisCmRegisterAddressFamilyEx(
  _In_ NDIS_HANDLE        NdisBindingHandle,
  _In_ PCO_ADDRESS_FAMILY AddressFamily
);

Parameters

NdisBindingHandle [in]

A handle that NDIS provided at the NdisBindingHandle parameter of the NdisOpenAdapterEx function. This handle identifies the binding to associate with the AF.

AddressFamily [in]

A pointer to a CO_ADDRESS_FAMILY structure that identifies the call manager and the AF that it supports for the binding that NdisBindingHandle specifies.

The pointer for AddressFamily becomes an input parameter to the ProtocolCoAfRegisterNotify functions of all of the clients that are bound to the same CoNDIS miniport adapter.

Return value

NdisCmRegisterAddressFamilyEx can return any of the following:

Return codeDescription
NDIS_STATUS_SUCCESS

The protocol driver registered the AF that the AddressFamily points to, so NDIS will call the ProtocolCoAfRegisterNotify functions of all of the clients that bind themselves to the same miniport adapter.

NDIS_STATUS_RESOURCES

The requested operation failed because NDIS could not allocate sufficient memory or initialize the state that it uses to track the call manager or the specified AF.

NDIS_STATUS_FAILURE

NDIS failed the call to NdisCmRegisterAddressFamilyEx, possibly for one of the following reasons:

  • The caller was not registered as a connection-oriented protocol driver.

  • The miniport driver that the caller is bound to was not registered as a connection-oriented miniport driver.

  • Another call manager has already registered the specified AF.

  • The caller's binding is being closed.

 

Remarks

NDIS stand-alone call managers, which register as NDIS protocol drivers by calling the NdisRegisterProtocolDriver function, should call the NdisCmRegisterAddressFamilyEx function to register an AF. Miniport call managers (MCMs) must instead call the NdisMCmRegisterAddressFamilyEx function.

To register an AF for a binding, the stand-alone call manager should call NdisCmRegisterAddressFamilyEx from the ProtocolBindAdapterEx function.

A stand-alone call manager's ProtocolBindAdapterEx function first establishes the binding to the underlying miniport driver by calling the NdisOpenAdapterEx function. Each time NDIS calls ProtocolBindAdapterEx with another handle at the BindContext parameter, ProtocolBindAdapterEx establishes a binding and registers an AF that it supports. In other words, a stand-alone call manager eventually registers an AF for each binding on which it provides call-management services to connection-oriented clients.

The call manager can support more than one AF and can support more than one AF for a single binding. However, only one call manager can support a given AF for clients that are bound to a given miniport adapter.

When a call manager's ProtocolBindAdapterEx function returns control after a successful binding operation, NDIS calls the ProtocolCoAfRegisterNotify functions of all of the clients that are bound to the same miniport adapter.

Requirements

Target platform

Universal

Version

Supported in NDIS 6.0 and later.

Header

Ndis.h (include Ndis.h)

Library

Ndis.lib

IRQL

PASSIVE_LEVEL

DDI compliance rules

Irql_CallManager_Function

See also

CO_ADDRESS_FAMILY
NdisMCmRegisterAddressFamilyEx
NdisOpenAdapterEx
NdisRegisterProtocolDriver
ProtocolBindAdapterEx
ProtocolCoAfRegisterNotify

 

 

Send comments about this topic to Microsoft

Show: