다음을 통해 공유


KsDisableEvent 함수(ks.h)

KsDisableEvent 함수는 IOCTL_KS_DISABLE_EVENT 통해 요청된 이벤트를 사용하지 않도록 설정합니다. 이전에 KsEnableEvent를 통해 사용하도록 설정된 모든 이벤트에 응답합니다. 입력 버퍼 길이가 0이면 목록의 모든 이벤트를 사용하지 않도록 설정해야 한다고 가정합니다. 이 함수는 PASSIVE_LEVEL 호출할 수 있습니다.

구문

KSDDKAPI NTSTATUS KsDisableEvent(
  [in]      PIRP              Irp,
  [in, out] PLIST_ENTRY       EventsList,
  [in]      KSEVENTS_LOCKTYPE EventsFlags,
  [in]      PVOID             EventsLock
);

매개 변수

[in] Irp

IRP를 사용하여 컨텍스트 정보를 가져오는 제거 함수에 전달된 IRP를 지정합니다. IRP와 연결된 파일 개체는 이벤트를 사용하도록 설정할 때 원래 지정된 파일 개체와 비교하는 데 사용됩니다. 이렇게 하면 파일 개체로 구분된 여러 클라이언트에 단일 이벤트 목록을 사용할 수 있습니다.

[in, out] EventsList

이벤트를 찾을 수 있는 KSEVENT_ENTRY 항목 목록의 헤드를 가리킵니다. 클라이언트가 여러 이벤트 목록을 사용하고 이 이벤트가 있는 목록을 모르는 경우 클라이언트는 이 함수를 여러 번 호출할 수 있습니다. 찾을 수 없는 이벤트는 STATUS_UNSUCCESSFUL 반환합니다.

[in] EventsFlags

이벤트 목록에 액세스하는 데 사용할 제외 잠금 유형을 지정하는 KSEVENTS_LOCKTYPE 플래그를 지정합니다. 플래그가 설정되지 않으면 잠금이 수행되지 않습니다.

[in] EventsLock

목록의 요소에 대한 액세스를 동기화하는 데 사용됩니다. 요소에 액세스한 후 후속 제거 요청이 실패할 수 있도록 삭제된 것으로 표시됩니다. 그런 다음 제거 함수(있는 경우)를 호출한 후 잠금이 해제됩니다. 제거 함수는 실제로 목록에서 요소를 제거하기 전에 이벤트 생성과 동기화해야 합니다.

반환 값

KsDisableEvent 함수는 성공하면 STATUS_SUCCESS 반환하거나 사용 중인 이벤트와 관련된 오류를 반환합니다. 함수는 항상 IO_STATUS_BLOCK 설정합니다. PIRP의 정보 필드입니다. IRP 내의 IoStatus 요소를 0으로 설정합니다. IO_STATUS_BLOCK 설정하지 않습니다. 상태 필드도 IRP를 완료하지 않습니다.

설명

제거 처리기는 이벤트 생성과 동기화하여 이벤트가 목록에서 제거될 때 현재 서비스가 되지 않도록 하는 것이 중요합니다. 이 목록에 대한 액세스는 잠금이 전달된 상태에서 제어되는 것으로 간주됩니다.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 ks.h(Ks.h 포함)
라이브러리 Ks.lib

추가 정보

KsEnableEvent