阅读:1747回复:1
DeviceIoControl的时候错误为:ERROR_NOACCESS我要把应用层创建的事件传给NDIS驱动, IOCTL定义: // 引用应用程序创建的事件 #define IO_REFERENCE_EVENT \ CTL_CODE(FSCTL_PTUSERIO_BASE, \ 0x812, METHOD_NEITHER, FILE_ANY_ACCESS) 应用层这样和驱动交互: BOOL bRet = ::DeviceIoControl(hAdapter, IO_REFERENCE_EVENT, (LPVOID)hEvent, sizeof(HANDLE), NULL, 0, &dwBytes, NULL); 问题: 如果把DeviceIoControl中的 sizeof(HANDLE) 改成0,用softICE跟踪发现程序运行到了NDIS驱动中的IO_REFERENCE_EVENT指令处理过程中,如果第四个参数的不用0,而用 sizeof(HANDLE) ,从softICE跟的结果看就根本不运行驱动中的IOCTL处理函数,用GetLastError得到998L,意思是ERROR_NOACCESS,请问是什么原因? |
|
|
沙发#
发布于:2008-01-16 09:25
METHOD_NEITHER改成METHOD_BUFFER或者METHOD_IN_DIRECT
|
|
|