阅读:1279回复:6
如果没人回答,我就跳楼了!!!
我在passthru.c 里添加了如下东西:
Status = IoCreateDevice (DriverObject, //driver object 0, //DeviceExtensionSize &DeviceName,//前面定一切初始化了 FILE_DEVICE_UNKNOWN,//DeviceType 0, //DeviceCharacteristics FALSE, //Exclusive &DeviceObject); //DeviceObject ASSERT(Status == NDIS_STATUS_SUCCESS); Status = IoCreateSymbolicLink( &SymbolicName/%前面定一切初始化了*/, &DeviceName ); ASSERT(Status == NDIS_STATUS_SUCCESS); boolSymbolic=TRUE; DeviceObject->Flags |= DO_BUFFERED_IO; DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = DeviceIoControl; DriverObject->DriverUnload =DriverUnload; NTSTATUS DeviceIoControl( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ) { PIO_STACK_LOCATION irpSp; ULONG functionCode; irpSp = IoGetCurrentIrpStackLocation(Irp); functionCode=irpSp->Parameters.DeviceIoControl.IoControlCode; if(functionCode==IO_TEST) { DBGPRINT(\"==> IOControling..........<==\\n\"); return 1; } return 1; } VOID DriverUnload( IN PDRIVER_OBJECT DriverObject ) {} 在passthru.h中添加了如下东西: /*―――――――――――――――――――――――――――――――――――――― 自定义设备名 */ #define DEVICE_NAME L\"\\\\Device\\\\NByte\" #define SYMBOLIC_NAME L\"\\\\DosDevices\\\\NByte\" /*―――――――――――――――――――――――――――――――――――――― 自定义I/O控制函数 */ VOID DriverUnload( IN PDRIVER_OBJECT DriverObject ); NTSTATUS DeviceIoControl( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ); 我想用过应用程序和驱动程序通讯于是在应用程序里调用如下: HANDLE hFile; hFile=CreateFile(TEXT(\"\\\\\\\\.\\\\NByte\"), GENERIC_WRITE | GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0 ); if(hFile == INVALID_HANDLE_VALUE) { return FALSE; } 结果一执行就自动重起,我的系统都快被折腾死了,我也会被折腾死了,请救救我吧!!谢谢!!! |
|
沙发#
发布于:2003-04-26 12:27
兄弟:耐心点
你看看上面的贴子,照你这样说我都跳楼N次了. 我们互相轻松一下,别介意!!! |
|
板凳#
发布于:2003-04-26 18:25
你在什么地方出错??
|
|
地板#
发布于:2003-04-26 20:17
我一执行到CreateFile(.....)那儿就重起,快帮帮忙吧,
我都快愁死了。 谢谢 |
|
地下室#
发布于:2003-04-28 09:45
这里是要注册一个设备,不是驱动,所以你用DriverObject是不行的
PDEVICE_OBJECT |
|
|
5楼#
发布于:2003-04-28 10:32
参考一下ddk里边的packet例子。
它就是在driverentry里边IoCreateDevice一个设备。 你的 DriverObject->MajorFunction[IRP_MJ_CREATE] = xxx; DriverObject->MajorFunction[IRP_MJ_CLOSE] = xxx; 。。。 这些设置了吗? win32 app call \"CreateFile\" will notify IO manager to call DriverObject->MajorFunction[IRP_MJ_CREATE] [编辑 - 4/28/03 by acidfish] |
|
6楼#
发布于:2003-04-28 11:42
mikeluo: 不好意思 我请教一个问题 别打我 哦
到下面这个帖子去看看好么? 新手求救。自己创建的事件为何没有相应呢? |
|