Compartir a través de


Función NdisClCloseAddressFamily (ndis.h)

NdisClCloseAddressFamily libera la asociación entre un protocolo de cliente y el AF registrado del controlador MCM o del administrador de llamadas para una NIC determinada a la que está enlazado el cliente.

Sintaxis

NDIS_STATUS NdisClCloseAddressFamily(
  [in] NDIS_HANDLE NdisAfHandle
);

Parámetros

[in] NdisAfHandle

Especifica el identificador proporcionado por NDIS devuelto por NdisClOpenAddressFamilyEx.

Valor devuelto

Cuando NdisClCloseAddressFamily devuelve algo distinto de NDIS_STATUS_PENDING, el cliente debe realizar una llamada interna a su Función ProtocolClCloseAfComplete . De lo contrario, NDIS llama al cliente. Función ProtocolClCloseAfComplete cuando se completa esta operación.

Si NdisClCloseAddressFamily devuelve NDIS_STATUS_PENDING, un cliente que está esperando su La función ProtocolClCloseAfComplete a la que se va a llamar no debe bloquear el subproceso actual, ya que esto podría provocar un interbloqueo. Esto es especialmente importante cuando un cliente llama a NdisClCloseAddressFamily en el contexto de controlar un Solicitud NdisCmNotifyCloseAddressFamily . En este caso, es posible que el administrador de llamadas no cierre la familia de direcciones hasta que el cliente haya devuelto para controlar la solicitud NdisCmNotifyCloseAddressFamily . Si el cliente bloquea el subproceso actual, el cliente nunca completará el control de la solicitud NdisCmNotifyCloseAddressFamily , lo que provocará un interbloqueo.

Comentarios

Normalmente, un cliente llama a NdisClCloseAddressFamily desde su
Función ProtocolUnbindAdapterEx , después de cerrar todas las máquinas virtuales abiertas del cliente en el enlace con llamadas a NdisClCloseCall o NdisClDeregisterSap. Un cliente también puede llamar a NdisClCloseAddressFamily en el contexto de procesamiento de un Solicitud NdisCmNotifyCloseAddressFamily .

NDIS llama a la de un cliente La función ProtocolUnbindAdapterEx siempre que se quita de la máquina una NIC subyacente a la que está enlazado el cliente o se está reconfigurando. Una reconfiguración PnP del controlador de miniport subyacente hace que el administrador de llamadas o el controlador MCM vuelvan a registrar la familia de direcciones que admite en esa NIC. Esto, a su vez, provoca una llamada posterior al cliente. Función ProtocolCoAfRegisterNotify . En cualquier escenario, el cliente La función ProtocolUnbindAdapterEx debe llamar a NdisClCloseAddressFamily con cualquier NdisAfHandle pendiente que esté usando actualmente, que depende del controlador de miniport subyacente.

Como guía general, un cliente debe liberar todos los recursos que asignó para las comunicaciones orientadas a la conexión a través del controlador de miniporte antes de su La función ProtocolUnbindAdapterEx llama a NdisCloseAdapterEx.

El NdisAfHandle pasado a NdisClCloseAddressFamily deja de ser válido para el cliente en cuanto se produce esta llamada.

Antes de una llamada a NdisClCloseAddressFamily, el cliente puede usar NdisAfHandle mientras el AF está abierto o mientras un La operación ProtocolClNotifyCloseAf está pendiente. Si el parámetro La función ProtocolClNotifyCloseAf devuelve NDIS_STATUS_PENDING, use el identificador en . NdisClNotifyCloseAddressFamilyComplete llamada una vez completada la operación de cierre.

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con controladores NDIS 6.0 y NDIS 5.1 (consulte NdisClCloseAddressFamily (NDIS 5.1)) en Windows Vista. Compatible con controladores NDIS 5.1 (consulte NdisClCloseAddressFamily (NDIS 5.1)) en Windows XP.
Plataforma de destino Escritorio
Encabezado ndis.h (incluya Ndis.h)
Library Ndis.lib
IRQL <= DISPATCH_LEVEL
Reglas de cumplimiento de DDI Irql_Protocol_Driver_Function(ndis)

Consulte también

NdisClCloseCall

NdisClDeregisterSap

NdisClOpenAddressFamilyEx

ProtocolClCloseAfComplete

ProtocolCmCloseAf

ProtocolCoAfRegisterNotify

ProtocolUnbindAdapterEx