Поделиться через


Функция ZwDeleteValueKey (wdm.h)

Подпрограмма ZwDeleteValueKey удаляет запись значения, соответствующую имени, из открытого раздела в реестре. Если такой записи не существует, возвращается ошибка.

Синтаксис

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

Параметры

[in] KeyHandle

Дескриптор раздела реестра, содержащего интересующую запись значения. Этот ключ должен быть открыт с KEY_SET_VALUE для нужного доступа. Этот дескриптор создается путем успешного вызова ZwCreateKey или ZwOpenKey.

[in] ValueName

Указатель на структуру UNICODE_STRING , содержащую имя удаляемой записи значения. Этот параметр может быть пустой строкой, если запись значения не имеет имени.

Возвращаемое значение

ZwDeleteValueKey возвращает STATUS_SUCCESS или соответствующее состояние ошибки, представляющее окончательное состояние завершения операции. Возможные коды состояния ошибок:

Код возврата Описание
STATUS_ACCESS_DENIED Дескриптор KeyHandle не имеет доступа к KEY_SET_VALUE.
STATUS_INSUFFICIENT_RESOURCES Дополнительные ресурсы, необходимые для этой функции, были недоступны.
STATUS_INVALID_HANDLE Указанный параметр KeyHandle был указателем NULL или не был допустимым указателем на открытый раздел реестра.
STATUS_OBJECT_NAME_NOT_FOUND Запись раздела реестра ValueName не найдена.

Комментарии

Для успешного удаления необходимо открыть ключ KeyHandle , переданный в ZwDeleteValueKey . Значения DesiredAccess KEY_SET_VALUE, KEY_WRITE и KEY_ALL_ACCESS включают маску доступа KEY_SET_VALUE, необходимую для удаления доступа. Описание возможных значений desiredAccess см. в разделе ZwCreateKey.

Если функции обратного вызова зарегистрированы для этого раздела реестра, будут вызываться эти функции обратного вызова.

Драйверы устройств не должны пытаться вызвать ZwDeleteValueKey напрямую, чтобы удалить записи значений в подразделе \Registry.. \ResourceMap key . Только система может записывать или удалять записи значений в \Registry.. \HardwareDescription tree.

Если вызов этой функции происходит в пользовательском режиме, следует использовать имя NtDeleteValueKey вместо ZwDeleteValueKey.

Для вызовов из драйверов режима ядра версии NtXxx и ZwXxx подпрограммы собственных системных служб Windows могут вести себя по-разному, так как они обрабатывают и интерпретируют входные параметры. Дополнительные сведения о связи между версиями процедуры NtXxx и ZwXxx см. в разделе Использование версий Nt и Zw для процедур собственных системных служб.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h, Fltkernel.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Правила соответствия DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

См. также раздел

Использование версий Nt и Zw собственных процедур системных служб

ZwCreateKey

ZwDeleteKey

ZwEnumerateValueKey

ZwOpenKey

ZwQueryValueKey

ZwSetValueKey