// QueueCallback.h - I/O Queue 回调处理 // 职责:处理从 DLL 发来的 IOCTL 请求 // 使用 WDF I/O Queue 简化并发管理 #pragma once #include #include #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