ZwDeleteValueKey 函式 (wdm.h)

ZwDeleteValueKey 例程會從登錄中的開啟機碼中刪除符合名稱的值專案。 如果不存在這類專案,則會傳回錯誤。

語法

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

參數

[in] KeyHandle

登錄機碼的句柄,其中包含感興趣的值專案。 此金鑰必須已開啟,並已針對所需的存取設定KEY_SET_VALUE。 此句柄是由 成功呼叫 ZwCreateKeyZwOpenKey 所建立。

[in] ValueName

包含要刪除之值項目名稱 之UNICODE_STRING 結構的指標。 如果值項目沒有名稱,這個參數可以是空字串。

傳回值

ZwDeleteValueKey 會傳回STATUS_SUCCESS或代表作業最終完成狀態的適當錯誤狀態。 可能的錯誤狀態代碼包括:

傳回碼 Description
STATUS_ACCESS_DENIED KeyHandle 句柄沒有KEY_SET_VALUE存取權。
STATUS_INSUFFICIENT_RESOURCES 此函式所需的其他資源無法使用。
STATUS_INVALID_HANDLE 指定的 KeyHandle 參數是 NULL 指標,或不是開啟登錄機碼的有效指標。
STATUS_OBJECT_NAME_NOT_FOUND 找不到 ValueName 登錄機碼專案。

備註

傳遞至 ZwDeleteValueKeyKeyHandle 必須已開啟,才能成功刪除存取權。 KEY_SET_VALUE、KEY_WRITE和 KEY_ALL_ACCESS 的 DesiredAccess 值包含刪除存取所需的KEY_SET_VALUE存取遮罩。 如需 DesiredAccess 可能值的描述,請參閱 ZwCreateKey

如果為此登錄機碼註冊回呼函式,則會呼叫這些回呼函式。

設備驅動器不應該嘗試直接呼叫 ZwDeleteValueKey ,以刪除 \Registry 子機碼中的值專案 。\ResourceMap 機碼。 只有系統可以寫入或刪除 \Registry 中的值專案 。\HardwareDescription 樹狀結構。

如果在使用者模式中呼叫此函式,您應該使用名稱 「NtDeleteValueKey」 而不是 「ZwDeleteValueKey」。

針對來自內核模式驅動程式的呼叫,Windows 原生系統服務例程的 NtXxxZwXxx 版本會以處理和解譯輸入參數的方式,以不同的方式運作。 如需 例程 NtXxxZwXxx 版本之間關聯性的詳細資訊,請參閱 使用原生系統服務例程的 Nt 和 Zw 版本

規格需求

需求
目標平台 Universal
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h、Fltkernel.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 合規性規則 HwStorPortProhibitedDIS (storport) PowerIrpDDis (wdm)

另請參閱

使用 Nt 和 Zw 版本的原生系統服務例程

ZwCreateKey

ZwDeleteKey

ZwEnumerateValueKey

ZwOpenKey

ZwQueryValueKey

ZwSetValueKey