Compartir a través de


Función ZwUnloadDriver (wdm.h)

La rutina ZwUnloadDriver descarga un controlador del sistema. Use esta rutina con extrema precaución (consulte la sección Comentarios a continuación).

Sintaxis

NTSYSAPI NTSTATUS ZwUnloadDriver(
  [in] PUNICODE_STRING DriverServiceName
);

Parámetros

[in] DriverServiceName

Puntero a una cadena Unicode con recuento que especifica una ruta de acceso a la clave del Registro del controlador, \Registry\Machine\System\CurrentControlSet\Services\<DriverName>, donde DriverName es el nombre del controlador.

Valor devuelto

ZwUnloadDriver devuelve STATUS_SUCCESS o un valor NTSTATUS de error, como STATUS_INVALID_DEVICE_REQUEST.

Si el controlador especificado en DriverServiceName no tiene ninguna rutina de devolución de llamada DriverUnload establecida en su estructura de DRIVER_OBJECT , ZwUnloadDriver devuelve STATUS_INVALID_DEVICE_REQUEST.

Comentarios

ZwUnloadDriver descarga dinámicamente un controlador de sistema de archivos o dispositivo desde el sistema que se está ejecutando actualmente. No se recomienda que un controlador llame a ZwUnloadDriver en sí mismo.

Un controlador de filtro del sistema de archivos no se puede descargar de forma segura desde un sistema en ejecución. Por lo tanto, un filtro solo debe usar ZwUnloadDriver con fines de depuración. No debe llamar a esta rutina en una versión comercial del filtro.

Si DriverName es el nombre de un controlador de dispositivo PnP, ZwUnloadDriver devuelve STATUS_INVALID_DEVICE_REQUEST y no descarga el controlador.

Un minifiltro debe usar FltUnloadFilter en lugar de ZwUnloadDriver para descargar un minifiltro auxiliar.

Si la llamada a la función ZwUnloadDriver se produce en modo de usuario, debe usar el nombre "NtUnloadDriver" en lugar de "ZwUnloadDriver".

En el caso de las llamadas desde controladores en modo kernel, las versiones NtXxx y ZwXxx de una rutina de Servicios del sistema nativo de Windows se pueden comportar de forma diferente en la forma en que controlan e interpretan los parámetros de entrada. Para obtener más información sobre la relación entre las versiones NtXxx y ZwXxx de una rutina, vea Using Nt and Zw Versions of the Native System Services Routines.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Reglas de cumplimiento de DDI HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Consulte también

FltUnloadFilter

RtlInitUnicodeString

UNICODE_STRING

Uso de las versiones Nt y Zw de las rutinas nativas de Servicios del sistema