PROTOCOL_UNINSTALL función de devolución de llamada (ndis.h)

NDIS llama a la función ProtocolUninstall del controlador de protocolo para realizar operaciones de limpieza antes de desinstalar un controlador de protocolo.

Nota Debe declarar la función mediante el tipo PROTOCOL_UNINSTALL . Para obtener más información, consulte la sección Ejemplos siguientes.
 

Sintaxis

PROTOCOL_UNINSTALL ProtocolUninstall;

void ProtocolUninstall()
{...}

Valor devuelto

None

Observaciones

La función ProtocolUninstall es opcional. El controlador de protocolo registró un punto de entrada, si existe, para esta función en . NDIS_PROTOCOL_DRIVER_CHARACTERISTICS estructura que pasó a la Función NdisRegisterProtocolDriver .

En respuesta a una solicitud de usuario para desinstalar un controlador de protocolo, NDIS llama a la función ProtocolUninstall del controlador de protocolo. NDIS llama a ProtocolUninstall después de llamar al controlador de protocolo Función ProtocolUnbindAdapterEx una vez para cada adaptador enlazado.

ProtocolUninstall realiza operaciones de limpieza determinadas por el controlador. Por ejemplo, ProtocolUninstall podría solicitar a los clientes que cierren los identificadores abiertos a los objetos de dispositivo que exportó el controlador de protocolo. Hasta que se cierren todos estos identificadores, el administrador de E/S no llamará a la rutina Unload que el controlador de protocolo registró en el objeto driver pasado a su rutina DriverEntry . Una vez cerrados todos los identificadores, ProtocolUninstall puede llamar a NdisDeregisterDeviceEx para eliminar los objetos de dispositivo creados por el controlador de protocolo.

El borde inferior del protocolo de un controlador intermedio puede requerir una función ProtocolUninstall . El controlador intermedio puede liberar sus recursos perimetrales de protocolo en ProtocolUninstall antes de que NDIS llame a su función MiniportDriverUnload .

NDIS llama a ProtocolUninstall en IRQL = PASSIVE_LEVEL.

Ejemplos

Para definir una función ProtocolUninstall , primero debe proporcionar una declaración de función que identifique el tipo de función que va a definir. Windows proporciona un conjunto de tipos de función para controladores. Declarar una función mediante los tipos de función ayuda a Code Analysis for Drivers, Static Driver Verifier (SDV) y otras herramientas de comprobación a encontrar errores y es un requisito para escribir controladores para el sistema operativo Windows.

Por ejemplo, para definir una función ProtocolUninstall denominada "MyUninstall", use el tipo PROTOCOL_UNINSTALL como se muestra en este ejemplo de código:

PROTOCOL_UNINSTALL MyUninstall;

A continuación, implemente la función de la siguiente manera:

_Use_decl_annotations_
VOID
 MyUninstall(void)
  {...}

El tipo de función PROTOCOL_UNINSTALL se define en el archivo de encabezado Ndis.h. Para identificar con más precisión los errores al ejecutar las herramientas de análisis de código, asegúrese de agregar la anotación Use_decl_annotations a la definición de función. La anotación Use_decl_annotations garantiza que se usen las anotaciones que se aplican al tipo de función PROTOCOL_UNINSTALL en el archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, consulte Declaración de funciones mediante el uso de tipos de roles de función para controladores NDIS.

Para obtener información sobre Use_decl_annotations, consulte Anotación del comportamiento de la función.

Requisitos

Requisito Value
Cliente mínimo compatible Se admite en NDIS 6.0 y versiones posteriores.
Plataforma de destino Windows
Encabezado ndis.h (incluya Ndis.h)
IRQL PASSIVE_LEVEL

Consulte también

DriverEntry

MiniportDriverUnload

NDIS_PROTOCOL_DRIVER_CHARACTERISTICS

NdisDeregisterDeviceEx

NdisRegisterProtocolDriver

ProtocolUnbindAdapterEx

Descargar