다음을 통해 공유


ZwOpenEvent 함수(wdm.h)

ZwOpenEvent 루틴은 지정된 원하는 액세스 권한으로 명명된 기존 이벤트 개체에 대한 핸들을 엽니다.

통사론

NTSYSCALLAPI NTSTATUS ZwOpenEvent(
  [out] PHANDLE            EventHandle,
  [in]  ACCESS_MASK        DesiredAccess,
  [in]  POBJECT_ATTRIBUTES ObjectAttributes
);

매개 변수

[out] EventHandle

이벤트 개체 핸들을 받을 변수에 대한 포인터입니다. 핸들에는 참조 수 및 보안 컨텍스트와 같은 부기 정보가 포함됩니다.

[in] DesiredAccess

이벤트 개체에 대해 원하는 액세스 형식을 나타내는 ACCESS_MASK 값입니다. 다음 표에는 이벤트별 ACCESS_MASK 값이 포함되어 있습니다.

원하는 액세스
EVENT_QUERY_STATE 이벤트 개체의 상태를 쿼리합니다.
EVENT_MODIFY_STATE 이벤트 개체의 상태를 수정합니다.
EVENT_ALL_ACCESS 이벤트 개체에 대한 모든 가능한 액세스 권한입니다.

[in] ObjectAttributes

호출자가 지정한 개체에 사용할 개체 특성 구조체에 대한 포인터입니다. 예를 들어 이러한 특성에는 ObjectName 및 핸들 특성이 포함됩니다. 이 매개 변수는 InitializeObjectAttributes 매크로를 호출하여 초기화됩니다.

반환 값

ZwOpenEvent STATUS_SUCCESS 또는 적절한 오류 상태를 반환합니다. 이 루틴은 다음 오류 상태 코드 중 하나를 반환할 수 있습니다.

반환 코드 묘사
STATUS_INSUFFICIENT_RESOURCES 이 함수에 필요한 리소스를 할당할 수 없습니다.
STATUS_INVALID_PARAMETER ObjectAttributes 구조체가 제공되지 않았거나 잘못된 매개 변수 값이 포함되어 있지 않습니다.
STATUS_OBJECT_NAME_INVALID ObjectAttributes 매개 변수에 잘못된 OBJECT_ATTRIBUTES 구조에 ObjectName 포함되어 있습니다.
STATUS_OBJECT_PATH_SYNTAX_BAD 개체 경로에 잘못된 구문이 포함되어 있습니다. 예를 들어 ObjectAttributes 매개 변수는 RootDirectory 멤버를 포함하지 않지만 OBJECT_ATTRIBUTES 구조체의 ObjectName 멤버는 빈 문자열이거나 OBJECT_NAME_PATH_SEPARATOR 문자로 시작하지 않습니다.
STATUS_OBJECT_PATH_NOT_FOUND 개체의 경로를 찾을 수 없으므로 개체가 존재하지 않음을 나타냅니다.
STATUS_OBJECT_NAME_NOT_FOUND 개체가 존재하지 않음을 나타내는 개체 이름을 찾을 수 없습니다.
STATUS_PRIVILEGE_NOT_HELD 호출자에게 DesiredAccess 매개 변수에 지정된 액세스 권한이 있는 핸들을 만드는 데 필요한 권한이 없습니다.

발언

ZwOpenEvent 기존 명명된 이벤트 개체를 열고 지정된 원하는 액세스 권한으로 개체에 대한 핸들을 만듭니다.

ZwOpenEvent 알림 또는 동기화 이벤트를 열 수 있습니다.

이벤트는 실행을 조정하는 데 사용됩니다. 파일 시스템 드라이버는 이벤트를 사용하여 지정된 이벤트가 Signaled 상태로 설정될 때까지 호출자가 요청된 작업의 완료를 기다릴 수 있도록 할 수 있습니다.

알림 이벤트를 사용하여 하나 이상의 스레드에 이벤트가 발생했음을 알릴 수 있습니다. 동기화 이벤트는 관련이 없는 두 드라이버 간에 하드웨어에 대한 액세스를 직렬화하는 데 사용할 수 있습니다.

ZwOpenEvent 함수에 대한 호출이 사용자 모드에서 발생하는 경우 "ZwOpenEvent" 대신 "NtOpenEvent" 이름을 사용해야 합니다.

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

요구 사항

요구
대상 플랫폼 보편적
헤더 wdm.h(Wdm.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 규정 준수 규칙 HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

참고 항목

ACCESS_MASK

InitializeObjectAttributes

IoCreateNotificationEvent

IoCreateSynchronizationEvent

KeClearEvent

KeResetEvent

KeSetEvent

KeWaitForSingleObject

네이티브 시스템 서비스 루틴 Nt 및 Zw 버전 사용

ZwClose

ZwCreateEvent

ZwSetEvent

ZwWaitForSingleObject