У нас есть структура OverLapped в пользовательском режиме. Например, мы можем вызвать DeviceIoControl с перекрывающимся элементом, чтобы вызвать событие, когда этот вызов будет завершен. Но какой режим ядра? Как я могу отправить асинхронный DeviceIoControl в ядре с обратным вызовом? (FsRtlIssueDeviceIoControl синхронизируется)
Асинхронный вызов DeviceIoControl в ядре
comment
FsRtlIssueDeviceIoControl: Процедура FsRtlIssueDeviceIoControl отправляет синхронный запрос управления вводом/выводом устройства к объекту целевого устройства. Он завершается, когда возвращается. Как и в случае со всеми синхронными вызовами. Может быть, я просто не понял вопроса.
- person IInspectable   schedule 23.07.2015
comment
Я исправил вопрос. Я не могу найти асинхронный DeviceIoControl в ядре.
- person Brans Ds   schedule 23.07.2015
comment
Драйверы Google Windows асинхронного ввода-вывода устройства запрашивают и принимают первый удар.
- person Hans Passant   schedule 23.07.2015
comment
@HansPassant, как вы можете видеть, первое попадание касается только драйвера Wdf, и я спрашиваю о контексте минифайлера (см. тег)
- person Brans Ds   schedule 24.07.2015
Ответы (1)
вы можете использовать IoCallDriver() для отправки вашего IOCTL с подпрограммой завершения, установленной с помощью IoSetCompletionRoutine(). но все же завершение может синхронизироваться или асинхронизироваться, это зависит от целевого драйвера, завершающего IOCTL.
person
samjeba
schedule
25.07.2015