| 123456789101112131415161718192021222324252627282930 |
- // QueueCallback.h - I/O Queue 回调处理
- // 职责:处理从 DLL 发来的 IOCTL 请求
- // 使用 WDF I/O Queue 简化并发管理
- #pragma once
- #include <ntddk.h>
- #include <wdf.h>
- #include "DeviceContext.h"
- namespace commkit_driver {
- // 创建控制设备并配置 I/O Queue
- NTSTATUS CreateControlDevice(WDFDRIVER driver);
- // EvtIoDeviceControl 回调:处理 IOCTL(主队列,Sequential 派发)
- // 处理除 IOCTL_COMMKIT_READ_EVENTS 外的所有 IOCTL
- VOID EvtIoDeviceControl(WDFQUEUE queue, WDFREQUEST request,
- size_t output_buffer_length, size_t input_buffer_length,
- ULONG io_control_code);
- // EvtIoReadEvents 回调:专用处理 IOCTL_COMMKIT_READ_EVENTS(Parallel 派发)
- // 独立队列避免被 WRITE_PORT/READ_PORT 的同步阻塞拖慢事件读取
- VOID EvtIoReadEvents(WDFQUEUE queue, WDFREQUEST request,
- size_t output_buffer_length, size_t input_buffer_length,
- ULONG io_control_code);
- // EvtIoDefault 回调(处理非 IOCTL 请求,仅完成)
- VOID EvtIoDefault(WDFQUEUE queue, WDFREQUEST request);
- } // namespace commkit_driver
|