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), HwStorPortProhibitedDDIs(storport), IoAllocateComplete, IoBuildFsdComplete, IoSetCompletionExCompleteIrp, IrpProcessingComplete(wdm), MarkIrpPending, PendedCompletedRequest(wdm), PendedCompletedRequest2, PendedCompletedRequest3, pendedCompletedRequestEx(wdm), PnpIrpCompletion(wdm), SpinLockSafe(storport), SpinLockSafe(wdm), WmiComplete(wdm) |