P>Где почитать про организацию отложенных IOCTL?
В документации как таковое понятие отложенных (pending) запросов отсутствует, вместо этого отложенные запросы описаны как часть механизма отмены (cancellation). Общую информацию можно почитать здесь:
I/O Cancellation
Win32 I/O Cancellation Support in Windows Vista
Как это дело реализовать в драйвере (при чём здесь не важно, фильтр это или нет), можно почитать в этом документе:
Cancel Logic in Windows Drivers
Советую вычитать и понять всё, что там написано, после чего реализовать очередь запросов самостоятельно (я рекомендую реализацию по схеме "Driver-Supplied Lock"), потому как:
Это даст глубокое понимание механизма в целом.
Это даст возможность более гибко менять функциональность очереди.
Но если времени совсем в обрез, можно и готовую библиотечку взять:
Cancel-Safe IRP Queues
Здравствуйте, x64, Вы писали:
P>>Где почитать про организацию отложенных IOCTL?
x64>Но если времени совсем в обрез, можно и готовую библиотечку взять:
x64>Cancel-Safe IRP Queues
Дополню качественный
ответ коллеги ссылками на примеры реализации\использования:
WDM Sample:
<DDK/WDK path>\src\general\Cancel — Demonstrates Usage of IoCsq Functions
FS Minifilter Sample:
<WDK path>src\filesys\miniFilter\cancelSafe
KMDF Sample Echo:
<WDK path>\src\general\echo\kmdf
UMDF Sample Echo:
<WDK path>\src\general\echo\umdf
кроме того, можно встретить поддержку cancellation в примерах из DDK/WDK в сетевых драйверах (mux ndis), а также USB & WDF и прочих.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Здравствуйте, Valery A. Boronin, Вы писали:
VAB>Здравствуйте, x64, Вы писали:
Спасибо, парни! Погнал изучать.