Função ZwUnloadDriver (wdm.h)

A rotina ZwUnloadDriver descarrega um driver do sistema. Use essa rotina com extrema cautela (consulte a seção Comentários abaixo).

Sintaxe

NTSYSAPI NTSTATUS ZwUnloadDriver(
  [in] PUNICODE_STRING DriverServiceName
);

Parâmetros

[in] DriverServiceName

Ponteiro para uma cadeia de caracteres Unicode contada que especifica um caminho para a chave do Registro do driver, \Registry\Machine\System\CurrentControlSet\Services\<DriverName>, em que DriverName é o nome do driver.

Retornar valor

ZwUnloadDriver retorna STATUS_SUCCESS ou um valor NTSTATUS de erro, como STATUS_INVALID_DEVICE_REQUEST.

Se o driver especificado em DriverServiceName não tiver nenhuma rotina de retorno de chamada DriverUnload definida em sua estrutura de DRIVER_OBJECT , ZwUnloadDriver retornará STATUS_INVALID_DEVICE_REQUEST.

Comentários

O ZwUnloadDriver descarrega dinamicamente um driver de dispositivo ou sistema de arquivos do sistema em execução no momento. Não é recomendável que um driver chame ZwUnloadDriver em si mesmo.

Um driver de filtro do sistema de arquivos não pode ser descarregado com segurança de um sistema em execução. Portanto, um filtro só deve usar ZwUnloadDriver para fins de depuração. Ele não deve chamar essa rotina em uma versão de varejo do filtro.

Se DriverName for o nome de um driver de dispositivo PnP, ZwUnloadDriver retornará STATUS_INVALID_DEVICE_REQUEST e não descarregará o driver.

Um minifiltro deve usar FltUnloadFilter em vez de ZwUnloadDriver para descarregar um minifiltro de suporte.

Se a chamada para a função ZwUnloadDriver ocorrer no modo de usuário, você deverá usar o nome "NtUnloadDriver" em vez de "ZwUnloadDriver".

Para chamadas de drivers de modo kernel, as versões NtXxx e ZwXxx de uma rotina do Windows Native System Services podem se comportar de forma diferente na maneira como lidam e interpretam parâmetros de entrada. Para obter mais informações sobre a relação entre as versões NtXxx e ZwXxx de uma rotina, consulte Using Nt and Zw Versions of the Native System Services Routines.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Regras de conformidade da DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Confira também

FltUnloadFilter

RtlInitUnicodeString

UNICODE_STRING

Usando versões Nt e Zw das rotinas de serviços do sistema nativo