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 규칙을 지정합니다. 다음 단계를 사용하여 코드 분석을 실행합니다. |
적용 대상
WDF_MEMORY_DESCRIPTOR_INIT_BUFFERWdfMemoryAssignBufferWdfMemoryCopyFromBufferWdfMemoryCopyToBufferWdfMemoryCreatePreallocatedWdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputBufferWdfRequestRetrieveOutputBufferWdfRequestRetrieveUnsafeUserInputBufferWdfRequestRetrieveUnsafeUserOutputBufferRtlCompareMemoryRtlMoveMemoryRtlZeroMemoryZwReadFile