Функция 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 собственных процедур системных служб