RequestCompleted 규칙(kmdf)
RequestCompleted 규칙은 필터가 아닌 드라이버의 경우 요청이 지연되거나 전달되지 않거나 WdfRequestStopAcknowledge가 호출되는 경우를 제외하면 드라이버의 기본 I/O 큐에 표시되는 각 요청을 완료해야 한다고 지정합니다.
큐 콜백 함수 중 하나를 통해 드라이버의 기본 큐에 표시되는 I/O 요청은 다음 경우를 제외하고 I/O 요청 콜백 함수에서 종료되기 전에 완료해야 합니다.
요청이 지연되었습니다(예: DPC 또는 작업 항목). 이 경우 DeferredRequestCompleted 규칙을 사용할 수 있습니다.
요청이 I/O 대상 또는 다른 큐로 전달되었습니다.
요청이 프레임워크에 전달되었습니다( WdfDeviceEnqueueRequest 호출).
WdfRequestStopAcknowledge 가 호출되었습니다.
규칙은 드라이버가 다음 콜백 함수에서 종료될 때 확인됩니다.
EvtFileClose, EvtFileCleanup, EvtDeviceSelfManagedIoSuspend, EvtDeviceSelfManagedIoFlush, EvtDeviceSelfManagedIoCleanup, EvtDeviceShutdownNotification, EvtDeviceSurpriseRemoval, EvtCleanupCallback 또는 디바이스에 대한 EvtDeviceSelfManagedIoFlush
요청 프레젠테이션에 대한 I/O 큐 콜백 함수는 EvtIoDefault, EvtIoRead, EvtIoWrite, EvtIoDeviceControl 및 EvtIoInternalDeviceControl입니다.
드라이버 모델: KMDF
테스트 방법
컴파일 시 |
---|
정적 드라이버 검증 도구 를 실행하고 RequestCompleted 규칙을 지정합니다. 다음 단계를 사용하여 코드 분석을 실행합니다.자세한 내용은 정적 드라이버 검증 도구로 드라이버에서 결함 찾기를 참조하세요. |
적용 대상
WdfDeviceEnqueueRequestWdfDmaTransactionInitializeWdfDmaTransactionInitializeUsingRequestWdfIoTargetSendInternalIoctlOthersSynchronouslyWdfIoTargetSendInternalIoctlSynchronouslyWdfIoTargetSendIoctlSynchronouslyWdfIoTargetSendReadSynchronouslyWdfIoTargetSendWriteSynchronouslyWdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestForwardToIoQueueWdfRequestMarkCancelableWdfRequestMarkCancelableExWdfRequestSendWdfRequestStopAcknowledgeWdfWorkItemEnqueue