Función ZwDeleteValueKey (wdm.h)

La rutina ZwDeleteValueKey elimina una entrada de valor que coincide con un nombre de una clave abierta en el Registro. Si no existe dicha entrada, se devuelve un error.

Sintaxis

NTSYSAPI NTSTATUS ZwDeleteValueKey(
  [in] HANDLE          KeyHandle,
  [in] PUNICODE_STRING ValueName
);

Parámetros

[in] KeyHandle

Identificador de la clave del Registro que contiene la entrada de valor de interés. Esta clave debe haberse abierto con KEY_SET_VALUE establecido para el acceso deseado. Este identificador se crea mediante una llamada correcta a ZwCreateKey o ZwOpenKey.

[in] ValueName

Puntero a una estructura UNICODE_STRING que contiene el nombre de la entrada de valor que se va a eliminar. Este parámetro puede ser una cadena vacía si la entrada de valor no tiene nombre.

Valor devuelto

ZwDeleteValueKey devuelve STATUS_SUCCESS o un estado de error adecuado que representa el estado de finalización final de la operación. Entre los posibles códigos de estado de error se incluyen los siguientes:

Código devuelto Descripción
STATUS_ACCESS_DENIED El identificador KeyHandle no tiene el acceso KEY_SET_VALUE.
STATUS_INSUFFICIENT_RESOURCES No había recursos adicionales necesarios para esta función.
STATUS_INVALID_HANDLE El parámetro KeyHandle especificado era un puntero NULL o no un puntero válido a una clave del Registro abierta.
STATUS_OBJECT_NAME_NOT_FOUND No se encontró la entrada de clave del Registro ValueName .

Comentarios

KeyHandle pasado a ZwDeleteValueKey debe haberse abierto para que el acceso de eliminación se realice correctamente. Los valores desiredAccess de KEY_SET_VALUE, KEY_WRITE y KEY_ALL_ACCESS incluyen la máscara de acceso KEY_SET_VALUE necesaria para eliminar el acceso. Para obtener una descripción de los valores posibles para DesiredAccess, vea ZwCreateKey.

Si las funciones de devolución de llamada están registradas para esta clave del Registro, se llamará a estas funciones de devolución de llamada.

Los controladores de dispositivo no deben intentar llamar directamente a ZwDeleteValueKey para eliminar entradas de valor en una subclave de \Registry.. \Clave ResourceMap . Solo el sistema puede escribir o eliminar entradas de valor en \Registry.. Árbol \HardwareDescription .

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

En el caso de las llamadas desde controladores en modo kernel, las versiones NtXxx y ZwXxx de una rutina de Windows Native System Services pueden comportarse 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 (include Wdm.h, Ntddk.h, Ntifs.h, Fltkernel.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Reglas de cumplimiento de DDI HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Consulte también

Uso de las versiones Nt y Zw de las rutinas nativas de System Services

ZwCreateKey

ZwDeleteKey

ZwEnumerateValueKey

ZwOpenKey

ZwQueryValueKey

ZwSetValueKey