IoCsqInitialize 함수(wdm.h)

IoCsqInitialize 루틴은 드라이버의 취소 안전 IRP 큐 디스패치 테이블을 초기화합니다.

구문

NTSTATUS IoCsqInitialize(
  [out] PIO_CSQ                       Csq,
  [in]  PIO_CSQ_INSERT_IRP            CsqInsertIrp,
  [in]  PIO_CSQ_REMOVE_IRP            CsqRemoveIrp,
  [in]  PIO_CSQ_PEEK_NEXT_IRP         CsqPeekNextIrp,
  [in]  PIO_CSQ_ACQUIRE_LOCK          CsqAcquireLock,
  [in]  PIO_CSQ_RELEASE_LOCK          CsqReleaseLock,
  [in]  PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp
);

매개 변수

[out] Csq

IoCsqInitialize에서 초기화할 IO_CSQ 구조체에 대한 포인터입니다.

[in] CsqInsertIrp

드라이버의 취소 안전 IRP 큐에 대한 드라이버 정의 CsqInsertIrp 함수에 대한 포인터입니다.

[in] CsqRemoveIrp

드라이버의 취소 안전 IRP 큐에 대한 드라이버 정의 CsqRemoveIrp 함수에 대한 포인터입니다.

[in] CsqPeekNextIrp

드라이버의 취소 안전 IRP 큐에 대한 드라이버 정의 CsqPeekNextIrp 함수에 대한 포인터입니다.

[in] CsqAcquireLock

드라이버의 취소 안전 IRP 큐에 대한 드라이버 정의 CsqAcquireLock 함수에 대한 포인터입니다.

[in] CsqReleaseLock

드라이버의 취소 안전 IRP 큐에 대한 드라이버 정의 CsqReleaseLock 함수에 대한 포인터입니다.

[in] CsqCompleteCanceledIrp

드라이버의 취소 안전 IRP 큐에 대한 드라이버 정의 CsqCompleteCanceledIrp 함수에 대한 포인터입니다.

반환 값

이 루틴은 성공 시 STATUS_SUCCESS 반환하거나 실패 시 적절한 NTSTATUS 오류 코드를 반환합니다.

설명

IoCsqInitialize 루틴은 드라이버의 취소 안전 IRP 큐를 설명하는 IO_CSQ 구조를 초기화합니다. 드라이버는 IoCsqInitializeEx 를 사용하여 확장된 기능이 있는 IRP 큐를 만들 수도 있습니다. 자세한 내용은 Cancel-Safe IRP 큐를 참조하세요.

IoCsqXxx 루틴은 IRP의 DriverContext[3] 멤버를 사용하여 IRP 컨텍스트 정보를 보유합니다. 이러한 루틴을 사용하여 IRP를 큐에 대기시키는 드라이버는 해당 멤버를 사용하지 않은 상태로 두어야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다. Windows 2000 및 Windows 98/Me에도 작동해야 하는 드라이버는 대신 Csq.lib에 연결하여 루틴을 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 모든 수준

추가 정보

CsqAcquireLock

CsqCompleteCanceledIrp

CsqInsertIrp

CsqInsertIrpEx

CsqPeekNextIrp

CsqReleaseLock

CsqRemoveIrp

IO_CSQ

IoCsqInitializeEx

IoCsqInsertIrp

IoCsqInsertIrpEx

IoCsqRemoveIrp

IoCsqRemoveNextIrp