다음을 통해 공유


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 네이티브 시스템 서비스 루틴의 NtXxxZwXxx 버전은 입력 매개 변수를 처리하고 해석하는 방식으로 다르게 동작할 수 있습니다. 루틴의 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