MINIPORT_UNLOAD função de retorno de chamada (ndis.h)
O NDIS chama a função MiniportDriverUnload do driver para solicitar que o driver libere recursos antes que o sistema conclua uma operação de descarregamento do driver.
Sintaxe
MINIPORT_UNLOAD MiniportUnload;
void MiniportUnload(
[in] PDRIVER_OBJECT DriverObject
)
{...}
Parâmetros
[in] DriverObject
Um ponteiro para uma estrutura de DRIVER_OBJECT que é o objeto de driver do driver.
Valor de retorno
Nenhum
Observações
Um driver especifica o ponto de entrada MiniportDriverUnload quando ele chama o função NdisMRegisterMiniportDriver.
O objeto driver associado a um driver de miniporto NDIS especifica uma rotina de Descarregar. O sistema operacional chama a rotina Descarregar quando todos os dispositivos que os serviços de driver de miniporto foram removidos. O NDIS fornece a rotina Descarregar para drivers NDIS. O NDIS chama a função MiniportDriverUnload de um driver de miniporto da rotina Descarregar.
A funcionalidade da rotina Descarregar é específica do driver. Como regra geral, MiniportDriverUnload deve desfazer as operações que foram executadas na rotina DriverEntry do driver.
Um driver de miniporto chama o função NdisMDeregisterMiniportDriver do MiniportDriverUnload.
Além de NdisMDeregisterMiniportDriver, um driver intermediário também chama o função NdisDeregisterProtocolDriver para desregister a interface de protocolo do driver. MiniportDriverUnload também deve executar todas as operações de limpeza necessárias, como desalocar todos os recursos de interface do driver de protocolo.
Se um driver de miniporto gerenciar mais de uma instância de dispositivo, como um driver de balanceamento de carga, o NDIS não chamará MiniportDriverUnload até que o NDIS chame a função MiniportHaltEx uma vez para cada instância do dispositivo.
Chamadas NDIS miniportDriverUnload em IRQL = PASSIVE_LEVEL.
exemplos de
Para definir uma função MiniportDriverUnload, 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 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 MiniportDriverUnload chamada "MyDriverUnload", use o tipo MINIPORT_UNLOAD conforme mostrado neste exemplo de código:
MINIPORT_UNLOAD MyDriverUnload;
Em seguida, implemente sua função da seguinte maneira:
_Use_decl_annotations_
VOID
MyDriverUnload(
PDRIVER_OBJECT DriverObject
)
{...}
O tipo de função MINIPORT_UNLOAD é 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 MINIPORT_UNLOAD 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 |
---|---|
de cliente com suporte mínimo | Com suporte no NDIS 6.0 e posterior. |
da Plataforma de Destino | Windows |
cabeçalho | ndis.h (inclua Ndis.h) |
IRQL | PASSIVE_LEVEL |