Compartilhar via


PROTOCOL_UNINSTALL função de retorno de chamada (ndis.h)

O NDIS chama a função ProtocolUninstall de um driver de protocolo para executar operações de limpeza antes que um driver de protocolo seja desinstalado.

Nota Você deve declarar a função usando o tipo PROTOCOL_UNINSTALL . Para obter mais informações, consulte a seção Exemplos a seguir.
 

Sintaxe

PROTOCOL_UNINSTALL ProtocolUninstall;

void ProtocolUninstall()
{...}

Retornar valor

Nenhum

Comentários

A função ProtocolUninstall é opcional. O driver de protocolo registrou um ponto de entrada, se houver, para essa função no NDIS_PROTOCOL_DRIVER_CHARACTERISTICS estrutura que passou para o Função NdisRegisterProtocolDriver .

Em resposta a uma solicitação do usuário para desinstalar um driver de protocolo, o NDIS chama a função ProtocolUninstall de um driver de protocolo. O NDIS chama ProtocolUninstall depois de chamar o driver de protocolo A função ProtocolUnbindAdapterEx uma vez para cada adaptador associado.

ProtocolUninstall executa operações de limpeza determinadas pelo driver. Por exemplo, ProtocolUninstall pode solicitar que os clientes fechem identificadores abertos para objetos de dispositivo que o driver de protocolo exportou. Até que todos esses identificadores sejam fechados, o gerente de E/S não chamará a rotina de Descarregamento que o driver de protocolo registrado no objeto driver passou para sua rotina driverEntry . Depois que todos os identificadores forem fechados, ProtocolUninstall poderá chamar NdisDeregisterDeviceEx para excluir todos os objetos de dispositivo criados pelo driver de protocolo.

A borda inferior do protocolo de um driver intermediário pode exigir uma função ProtocolUninstall . O driver intermediário pode liberar seus recursos de borda de protocolo no ProtocolUninstall antes que o NDIS chame sua função MiniportDriverUnload .

O NDIS chama ProtocolUninstall em IRQL = PASSIVE_LEVEL.

Exemplos

Para definir uma função ProtocolUninstall , primeiro você deve fornecer uma declaração de função que identifique o tipo de função que você está definindo. O Windows fornece um conjunto de tipos de função para drivers. Declarar uma função usando os tipos de função ajuda a Análise de Código para Drivers, SDV ( Verificador de Driver Estático ) e outras ferramentas de verificação a encontrar erros e é um requisito para gravar drivers para o sistema operacional Windows.

Por exemplo, para definir uma função ProtocolUninstall chamada "MyUninstall", use o tipo PROTOCOL_UNINSTALL conforme mostrado neste exemplo de código:

PROTOCOL_UNINSTALL MyUninstall;

Em seguida, implemente sua função da seguinte maneira:

_Use_decl_annotations_
VOID
 MyUninstall(void)
  {...}

O tipo de função PROTOCOL_UNINSTALL é definido no arquivo de cabeçalho Ndis.h. Para identificar erros com mais precisão ao executar as ferramentas de análise de código, adicione a anotação Use_decl_annotations à sua definição de função. A anotação Use_decl_annotations garante que as anotações aplicadas ao tipo de função PROTOCOL_UNINSTALL no arquivo de cabeçalho sejam usadas. Para obter mais informações sobre os requisitos para declarações de função, consulte Declarando funções usando tipos de função de função para drivers NDIS.

Para obter informações sobre Use_decl_annotations, consulte Anotando o comportamento da função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte no NDIS 6.0 e posterior.
Plataforma de Destino Windows
Cabeçalho ndis.h (inclua Ndis.h)
IRQL PASSIVE_LEVEL

Confira também

DriverEntry

MiniportDriverUnload

NDIS_PROTOCOL_DRIVER_CHARACTERISTICS

NdisDeregisterDeviceEx

NdisRegisterProtocolDriver

ProtocolUnbindAdapterEx

Descarregar