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 레지스트리 키 항목을 찾을 수 없습니다. |
설명
삭제 액세스가 성공하려면 ZwDeleteValueKey에 전달된 KeyHandle이 열려 있어야 합니다. KEY_SET_VALUE, KEY_WRITE 및 KEY_ALL_ACCESS DesiredAccess 값에는 액세스 삭제에 필요한 KEY_SET_VALUE 액세스 마스크가 포함됩니다. DesiredAccess에 대한 가능한 값에 대한 설명은 ZwCreateKey를 참조하세요.
이 레지스트리 키에 대해 콜백 함수가 등록된 경우 이러한 콜백 함수가 호출됩니다.
디바이스 드라이버는 ZwDeleteValueKey 를 직접 호출하여 \Registry의 하위 키에 있는 값 항목을 삭제하려고 시도해서는 안 됩니다. \ResourceMap 키입니다. 시스템에서만 \Registry에서 값 항목을 작성하거나 삭제할 수 있습니다. \HardwareDescription 트리.
이 함수에 대한 호출이 사용자 모드에서 발생하는 경우 "ZwDeleteValueKey" 대신 "NtDeleteValueKey" 이름을 사용해야 합니다.
커널 모드 드라이버에서 호출하는 경우 Windows 네이티브 시스템 서비스 루틴의 NtXxx 및 ZwXxx 버전은 입력 매개 변수를 처리하고 해석하는 방식으로 다르게 동작할 수 있습니다. 루틴의 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) |