QueueCallback.h 1.1 KB

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