IoMakeAssociatedIrp 함수(ntddk.h)
이 루틴은 파일 시스템 및 파일 시스템 필터 드라이버에서 사용하도록 예약되어 있습니다. IoMakeAssociatedIrp 루틴은 최고 수준 드라이버로 전송된 master IRP와 연결되도록 IRP를 할당하고 초기화하여 호출자가 원래 요청을 분할하고 연결된 IRP를 하위 수준 드라이버로 보낼 수 있도록 합니다.
구문
PIRP IoMakeAssociatedIrp(
[in] PIRP Irp,
[in] CCHAR StackSize
);
매개 변수
[in] Irp
최상위 드라이버의 Dispatch 루틴에 입력된 master IRP에 대한 포인터입니다.
[in] StackSize
연결된 IRP에 할당할 스택 위치 수를 지정합니다. 값은 다음으로 낮은 드라이버의 디바이스 개체 의 StackSize 와 적어도 같아야 하지만 연결된 IRP는 호출자에 대한 추가 스택 위치를 가질 수 있습니다.
반환 값
IoMakeAssociatedIrp 은 연결된 IRP에 대한 포인터를 반환하거나 IRP를 할당할 수 없는 경우 NULL 포인터를 반환합니다.
설명
최상위 드라이버만 이 루틴을 호출할 수 있습니다.
I/O 관리자는 호출자가 연결된 IRP에서 IoCompletion 루틴을 설정하지 않고 IoCompletion 루틴에서 STATUS_MORE_PROCESSING_REQUIRED 반환하지 않는 한 낮은 드라이버가 모든 관련 IRP를 완료하면 자동으로 master IRP를 완료합니다. 이러한 상황에서 호출자는 해당 드라이버가 연결된 모든 IRP가 완료되었음을 확인했을 때 master IRP를 명시적으로 완료해야 합니다.
master IRP만 스레드와 연결됩니다. 연결된 IRP는 연결되지 않습니다. 이러한 이유로 I/O 관리자는 스레드가 종료될 때 연결된 IRP에 대해 취소 루틴을 호출할 수 없습니다. master IRP의 스레드가 종료되면 I/O 관리자는 master IRP의 취소 루틴을 호출합니다. Cancel 루틴은 연결된 모든 IRP를 추적하고 IoCancelIrp를 호출하여 취소합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000부터 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | ntddk.h(Ntddk.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |