阅读:1181回复:1
问个关于串口过滤的问题
请教高手:我想做一个串口的过滤驱动。其实就是拦截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的那个地方写错了? |
|
沙发#
发布于:2005-05-24 07:07
挂了上去后我会去处理相关IRP的
[编辑 - 5/24/05 by KMK] |
|