spcui
驱动牛犊
驱动牛犊
  • 注册日期2002-03-23
  • 最后登录2007-11-12
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1182回复:1

问个关于串口过滤的问题

楼主#
更多 发布于:2005-05-19 10:08
请教高手:我想做一个串口的过滤驱动。其实就是拦截CreateFile和Write、Read操作。参考各种例程我的AddDevice例程是这么写的:
NTSTATUS SerAddDevice(IN PDRIVER_OBJECT DriverObject,IN PDEVICE_OBJECT pdo)
{
NTSTATUS status;
PDEVICE_OBJECT fdo;

status = IoCreateDevice (DriverObject,
sizeof(DEVICE_EXTENSION),
NULL, // No Name
FILE_DEVICE_SERIAL_PORT,
FILE_DEVICE_SECURE_OPEN,
FALSE, // Not exclusive
&fdo);

// Remember fdo in our device extension
PDEVICE_EXTENSION dx = (PDEVICE_EXTENSION)fdo->DeviceExtension;
dx->fdo = fdo;

// Attach to the driver stack below us
dx->NextStackDevice = IoAttachDeviceToDeviceStack(fdo,pdo);

  fdo->Flags |= dx->NextStackDevice->Flags & (DO_BUFFERED_IO | DO_DIRECT_IO |
                            DO_POWER_PAGABLE  | DO_POWER_INRUSH);

  fdo->DeviceType = dx->NextStackDevice->DeviceType;
  fdo->Characteristics = dx->NextStackDevice->Characteristics;

fdo->Flags &= ~DO_DEVICE_INITIALIZING;
return STATUS_SUCCESS;
}

但是,当我在应用程序中调用CreateFile(\"\\\\\\\\.\\\\COM1\"...)的时候,驱动根本拦截不到,请问高手是不是AddDevice的那个地方写错了?
KMK
KMK
驱动大牛
驱动大牛
  • 注册日期2001-09-12
  • 最后登录2017-10-06
  • 粉丝2
  • 关注0
  • 积分42分
  • 威望404点
  • 贡献值2点
  • 好评度58点
  • 原创分1分
  • 专家分1分
  • 社区居民
沙发#
发布于:2005-05-24 07:07
挂了上去后我会去处理相关IRP的

[编辑 -  5/24/05 by  KMK]
游客

返回顶部