BufAfterReqCompletedIntIoctlA 규칙(kmdf)

BufAfterReqCompletedIntIoctlA 규칙은 요청이 완료된 후 해당 버퍼에 액세스할 수 없음을 확인합니다(EvtIoInternalDeviceControl 콜백 내에서만 해당). 버퍼는 WdfRequestRetrieveInputBuffer 또는 WdfRequestRetrieveOutputBuffer 또는 WdfRequestRetrieveUnsafeUserInputBuffer 또는 WdfRequestRetrieveUnsafeUserOutputBuffer를 호출하여 검색되었습니다.

EvtIoInternalDeviceControl I/O 큐 이벤트 콜백 함수 내에서 WdfRequestRetrieveInputBuffer 또는 WdfRequestRetrieveOutputBuffer 또는 WdfRequestRetrieveUnsafeUserInputBuffer 또는 WdfRequestRetrieveUnsafeUserOutputBuffer를 호출하여 검색한 요청 버퍼는 WdfRequestComplete 후에 액세스할 수 없습니다. WdfRequestCompleteWithInformation 또는 WdfRequestCompleteWithPriorityBoost 메서드가 요청에 대해 호출되었습니다. 가능한 버퍼 액세스 함수는 다음과 같습니다. RtlMoveMemory (버퍼를 1번째 및 2번째 매개 변수로 사용), RtlZeroMemory, RtlCompareMemory, ZwReadFile, ZwWriteFile, WDF_MEMORY_DESCRIPTOR_INIT_BUFFER, WdfMemoryCreatePreallocated, WdfMemoryAssignBuffer, WdfMemoryCopyFromBuffer, WdfMemoryCopyToBuffer.

드라이버 모델: KMDF

테스트 방법

컴파일 시

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

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

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

적용 대상

WDF_MEMORY_DESCRIPTOR_INIT_BUFFERWdfMemoryAssignBufferWdfMemoryCopyFromBufferWdfMemoryCopyToBufferWdfMemoryCreatePreallocatedWdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputBufferWdfRequestRetrieveOutputBufferWdfRequestRetrieveUnsafeUserInputBufferWdfRequestRetrieveUnsafeUserOutputBufferRtlCompareMemoryRtlMoveMemoryRtlZeroMemoryZwReadFile