Desenlace de un adaptador
NDIS llama a la función ProtocolUnbindAdapterEx de un controlador de protocolo para solicitar que el controlador desenlace de un adaptador subyacente. Como recíproca de ProtocolBindAdapterEx, NDIS llama a ProtocolUnbindAdapterEx para cerrar el enlace al adaptador y liberar los recursos asignados al controlador para el enlace.
En ProtocolUnbindAdapterEx, un controlador de protocolo llama a NdisCloseAdapterEx para cerrar el enlace a un adaptador subyacente. El controlador de protocolo pasa NdisCloseAdapterEx el identificador que NdisOpenAdapterEx proporcionó en su parámetro NdisBindingHandle . Este identificador identifica el enlace que debe cerrar NDIS.
Los controladores de protocolo deben cerrar un adaptador de la función ProtocolBindAdapterEx o la función ProtocolUnbindAdapterEx .
Si un controlador de protocolo debe iniciar una operación para cerrar un enlace, el controlador puede llamar a NdisUnbindAdapter. NdisUnbindAdapter programa un elemento de trabajo que da como resultado una llamada NDIS a ProtocolUnbindAdapterEx. Este elemento de trabajo se puede ejecutar antes de que se devuelva la llamada a NdisUnbindAdapter . Por lo tanto, los escritores de controladores deben suponer que el identificador de enlace no es válido después de que se devuelva NdisUnbindAdapter .
Si un controlador de protocolo devuelve NDIS_STATUS_PENDING de ProtocolUnbindAdapterEx, debe llamar a NdisCompleteUnbindAdapterEx con el estado final para completar la solicitud de enlace.
Si NDIS devuelve NDIS_STATUS_PENDING de NdisCloseAdapterEx, NDIS llama posteriormente a la función ProtocolCloseAdapterCompleteEx del controlador de protocolo.
NDIS puede llamar a ProtocolUnbindAdapterEx si el enlace está en estado Pausado.
Una vez completadas todas las operaciones de desenlace, el enlace está en estado Unbound.