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를 참조하세요.

이 레지스트리 키에 대한 콜백 함수가 등록된 경우 이러한 콜백 함수가 호출됩니다.

디바이스 드라이버는 \Registry의 하위 키에서 값 항목을 삭제하기 위해 ZwDeleteValueKey 를 직접 호출하려고 시도해서는 안 됩니다. \ResourceMap 키입니다. 시스템에서만 \Registry에서 값 항목을 작성하거나 삭제할 수 있습니다. \HardwareDescription 트리.

참고 이 함수에 대한 호출이 사용자 모드에서 발생하는 경우 "ZwDeleteValueKey" 대신 "NtDeleteValueKey"라는 이름을 사용해야 합니다.
 
커널 모드 드라이버의 호출의 경우 Windows Native System Services 루틴의 NtXxxZwXxx 버전은 입력 매개 변수를 처리하고 해석하는 방식으로 다르게 동작할 수 있습니다. 루틴의 NtXxx 버전과 ZwXxx 버전 간의 관계에 대한 자세한 내용은 네이티브 시스템 서비스 루틴의 Nt 및 Zw 버전 사용을 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000부터 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 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