Правило MemAfterReqCompletedIoctlA (kmdf)
Правило MemAfterReqCompletedIoctlA указывает, что в функции обратного вызова EvtIoDeviceControl объект памяти платформы не может быть доступен после выполнения запроса ввода-вывода.
В функции обратного вызова EvtIoDeviceControl драйвера невозможно получить доступ к объекту памяти платформы, который был получен путем вызова методов WdfRequestRetrieveInputMemory или WdfRequestRetrieveOutputMemory после вызова WdfRequestComplete, WdfRequestCompleteWithInformation или WdfRequestCompleteWithPriorityBoost в запросе ввода-вывода.
Это правило учитывает следующие методы доступа к памяти:
WdfMemoryGetBufferWDF_MEMORY_DESCRIPTOR_INIT_HANDLEWdfMemoryAssignBufferWdfMemoryCopyToBufferWdfMemoryCopyFromBufferWdfObjectReferenceWdfObjectDereferenceWdfObjectDelete
Модель драйвера: KMDF
Как тестировать
Во время компиляции |
---|
Запустите средство проверки статических драйверов и укажите правило MemAfterReqCompletedIoctlA . Выполните следующие действия, чтобы выполнить анализ кода.
Дополнительные сведения см. в разделе Использование средства проверки статических драйверов для поиска дефектов в драйверах. |
Применяется к
WDF_MEMORY_DESCRIPTOR_INIT_HANDLEWdfMemoryAssignBufferWdfMemoryCopyFromBufferWdfMemoryCopyToBufferWdfMemoryGetBufferWdfObjectDeleteWdfObjectDereferenceWdfObjectReferenceWdfRequestCompleteWdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestRetrieveInputMemoryWdfRequestRetrieveOutputMemory