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或代表作業最終完成狀態的適當錯誤狀態。 可能的錯誤狀態代碼包括:
傳回碼 | Description |
---|---|
STATUS_ACCESS_DENIED | KeyHandle 句柄沒有KEY_SET_VALUE存取權。 |
STATUS_INSUFFICIENT_RESOURCES | 此函式所需的其他資源無法使用。 |
STATUS_INVALID_HANDLE | 指定的 KeyHandle 參數是 NULL 指標,或不是開啟登錄機碼的有效指標。 |
STATUS_OBJECT_NAME_NOT_FOUND | 找不到 ValueName 登錄機碼專案。 |
備註
傳遞至 ZwDeleteValueKey 的 KeyHandle 必須已開啟,才能成功刪除存取權。 KEY_SET_VALUE、KEY_WRITE和 KEY_ALL_ACCESS 的 DesiredAccess 值包含刪除存取所需的KEY_SET_VALUE存取遮罩。 如需 DesiredAccess 可能值的描述,請參閱 ZwCreateKey。
如果為此登錄機碼註冊回呼函式,則會呼叫這些回呼函式。
設備驅動器不應該嘗試直接呼叫 ZwDeleteValueKey ,以刪除 \Registry 子機碼中的值專案 。\ResourceMap 機碼。 只有系統可以寫入或刪除 \Registry 中的值專案 。\HardwareDescription 樹狀結構。
如果在使用者模式中呼叫此函式,您應該使用名稱 「NtDeleteValueKey」 而不是 「ZwDeleteValueKey」。
針對來自內核模式驅動程式的呼叫,Windows 原生系統服務例程的 NtXxx 和 ZwXxx 版本會以處理和解譯輸入參數的方式,以不同的方式運作。 如需 例程 NtXxx 和 ZwXxx 版本之間關聯性的詳細資訊,請參閱 使用原生系統服務例程的 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) |