IofCompleteRequest 함수(wdm.h)
IoCompleteRequest 매크로는 호출자가 지정된 I/O 요청에 대한 모든 처리를 완료했으며 지정된 IRP를 I/O 관리자에 반환하고 있음을 나타냅니다.
IoCompleteRequest 는 IofCompleteRequest를 래핑합니다.
구문
void IofCompleteRequest(
PIRP Irp,
CCHAR PriorityBoost
);
매개 변수
Irp
완료할 IRP에 대한 포인터입니다.
PriorityBoost
작업을 요청한 원래 스레드의 런타임 우선 순위를 증가시키는 시스템 정의 CCHAR 상수를 지정합니다. 이 값은 원래 스레드가 드라이버를 신속하게 완료할 수 있는 작업을 요청했거나(요청 스레드가 I/O가 완료될 것으로 가정된 대기에 대해 보상되지 않음) 또는 IRP가 오류로 완료된 경우 IO_NO_INCREMENT. 그렇지 않으면 PriorityBoost 상수 집합이 디바이스 유형에 따라 다릅니다. 이러한 상수는 Ntddk.h 또는 Wdm.h를 참조하세요.
반환 값
없음
설명
드라이버가 지정된 IRP에 대한 모든 처리를 완료하면 IoCompleteRequest를 호출합니다. I/O 관리자는 IRP를 확인하여 상위 수준 드라이버가 IRP에 대한 IoCompletion 루틴을 설정했는지 여부를 확인합니다. 이 경우 체인의 모든 계층화된 드라이버가 IRP를 완료할 때까지 각 IoCompletion 루틴이 차례로 호출됩니다.
모든 드라이버가 지정된 IRP를 완료하면 I/O 관리자는 작업의 원래 요청자에게 상태 반환합니다. 드라이버에서 만든 IRP를 설정하는 상위 수준 드라이버는 만든 IRP를 해제하는 IoCompletion 루틴을 제공해야 합니다.
스핀 잠금을 유지하는 동안 IoCompleteRequest 를 호출하지 마세요. 스핀 잠금을 유지하는 동안 IRP를 완료하려고 하면 교착 상태가 발생할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000부터 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |
DDI 규정 준수 규칙 | CompleteRequest, CompleteRequestStatusCheck, DoubleCompletion(wdm), HwStorPortProhibitedDDDIs(storport), IoAllocateComplete, IoBuildFsdComplete, IoSetCompletionExCompleteIrp, IrpProcessingComplete(wdm), MarkIrpPending, PendedCompletedRequest(wdm), PendedCompletedRequest2, PendedCompletedRequest3, PendedCompletedRequestEx(wdm), PnpIrpCompletion(wdm), SpinLockSafe(storport), SpinLockSafe(wdm), WmiComplete(wdm) |