다음을 통해 공유


MdlAfterReqCompletedIntIoctlA 규칙(kmdf)

MdlAfterReqCompletedIntIoctlA 규칙은 EvtIoInternalDeviceControl 콜백 함수 내에서 I/O 요청이 완료된 후 MDL(메모리 설명자 목록)에 액세스할 수 없음을 지정합니다.

드라이버의 EvtIoInternalDeviceControl 콜백 함수 내에서 I/O 요청에서 WdfRequestComplete, WdfRequestCompleteWithInformation 또는 WdfRequestCompleteWithInformation 또는 WdfRequestCompleteWithPriorityBoost를 호출한 후 WdfRequestRetrieveInputWdmdl 또는 WdfRequestRetrieveOutputWdmdl 메서드를 호출하여 검색한 MDL에 액세스할 수 없습니다.

이 규칙은 다음 MDL 액세스 함수를 고려합니다.

WDF_MEMORY_DESCRIPTOR_INIT_MDLMmGetMdlByteCountMmGetSystemAddressForMdlSafeMmGetMdlVirtualAddressIoBuildPartialMdl (첫 번째 및 두 번째 매개 변수) KeFlushIoBuffersMmGetMdlPfnArrayMmGetMdlByteOffsetMmPrepareMdlForReuseWdfDmaTransactionInitialize

드라이버 모델: KMDF

테스트 방법

컴파일 시

정적 드라이버 검증 도구를 실행하고 MdlAfterReqCompletedIntIoctlA 규칙을 지정합니다.

다음 단계를 사용하여 코드 분석을 실행합니다.
  1. 코드를 준비합니다(역할 형식 선언 사용).
  2. 정적 드라이버 검증 도구를 실행합니다.
  3. 결과를 보고 분석합니다.

자세한 내용은 정적 드라이버 검증 도구를 사용하여 드라이버에서 결함 찾기를 참조하세요.

적용 대상

WDF_MEMORY_DESCRIPTOR_INIT_MDLWdfDmaTransactionInitializeWdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputWdmdlWdfRequestRetrieveOutputWdmdlIoBuildPartialMdlKeFlushIoBuffersMmGetMdlByteCountMmGetMdlByteOffsetMmGetMdlPfnArrayMmGetMdlVirtualAddressMmGetSystemAddressForMdlSafeMmPrepareMdlForReuse