一个自己写的Filter驱动,定义的Filter_Service_Name为:
#define FILTER_DEVICE_NAME L"\\\\.\\NDISLWF"
然后想用CreateFileW()方法来打开这个Handler:
#define FILTER_DEVICE_NAME L"\\\\.\\NDISLWF"
// Obtain a filter driver handle
printf("Opening a Filter Driver device handle...\n");
m_hFilter = CreateFileW(
FILTER_DEVICE_NAME,
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
INVALID_HANDLE_VALUE);
if (m_hFilter == INVALID_HANDLE_VALUE)
{
printf("Failed to open a handle to ndislwf: 0x%x\n", GetLastError());
goto Exit;
}
结果返回的结果是INVALID_HANDLE_VALUE,并且GetLastError()=0x5
----------------------根本原因是运行的进程权限不够-------------------------------------------
1、可以更改CreateFileW()第三个参数为:FILE_SHARE_READ | FILE_SHARE_WRITE
2、然后在Vista中以管理员权限运行命令行窗口在运行
这样就没有问题了。
可以参考:http://topic.csdn.net/u/20091203/16/82ae83fc-dec2-4cfe-81a3-4972cb1b6490.html?seed=245779751&r=61629475#r_61629475
分享到:
相关推荐
GetLastError returns 0x00000485** - 解释:找不到运行所需的应用程序库文件。 - 解决方案:确认文件路径正确且文件存在。 9. **LoadLibrary("Dllname") failed. GetLastError returns 0x00000002** - 解释:...
5. **硬件错误**:硬件设备出现问题,如驱动程序错误(ERROR_DRIVER_FAILED)、硬件故障(ERROR_CRC)等。 理解并解读这些错误代码对于排查问题至关重要。开发人员可以利用`FormatMessage()`函数将错误代码转化为可...
可以通过调用`GetLastError`函数获取失败原因。 #### 示例代码分析 下面是一个简单的示例代码,演示了如何在C#程序中使用`AnimateWindow`函数来实现窗口的动画效果。 ```csharp using System; using System....
- `dt_MMVAD0x8248f8f0`:查看VAD地址为0x8248f8f0的VAD结构。 - `dt_MMVAD0x82418340`:查看左子节点。 - `dt_MMVAD0x824184d0`:查看右子节点。 - `dt_control_area0x8248d538`:查看控制区域信息。 - `dt_FILE_...
5. **异常处理**:在适当的地方使用异常处理机制来捕获和处理错误。 通过以上介绍,我们可以看到,正确地处理WINDOW函数错误是非常重要的,它不仅能够帮助开发者快速定位问题所在,还能够提高应用程序的稳定性和...
- 当 `lpString` 的形式为 `#1234` 时,`AddAtom` 返回一个整型原子,其值为字符串中指定的 16 位十进制数的表示(例如,本例中为 0x04D2)。如果指定的十进制数值为 0x0000 或大于等于 0xC000,则返回值为零,表示...
《“Windows Media Services服务因2147500037(0x80004005)服务性错误而停止”的解决方法 》(http://blog.csdn.net/smallfools/archive/2011/05/10/6409242.aspx)中使用到的Reg文件
(VBoxDD):GetLastError=1790 (VERR_UNRESOLVED_ERROR) 返回 代码: E_FAIL (0x80004005) 组件: Console 界面: IConsole {8ab7c520-2442-4b66-8d74-4ff1e195d2b6} 解决办法就是 下载此资源将里面的三个文件在C:\...
TRACE(traceAppMsg, 0, "Warning: Window creation failed: GetLastError returns 0x%8.8X\n", GetLastError()); } #endif if (!AfxUnhookWindowCreate()) PostNcDestroy(); if (hWnd == NULL) return FALSE;...
在64位win7下运行Virtualbox去安装系统时出错:Failed to open a session for the virtual machine,Unable to load R3 module xxxx/VBoxDD.DLL(VBoxDD),GetLastError=126,(VERR_MODULE_NOT_FOUND),打包了...
例如,0x00000001表示只读,0x00000002表示隐藏,0x00000004表示系统,0x00000020表示存档。要修改属性,可以使用`SetFileAttributes`函数,传入文件名和新的属性值。 在处理文件夹时,我们还需要关注递归操作,即...
5. **错误处理**:`CFile`类提供了一些成员函数来检查和处理可能出现的错误,如`GetStatus`获取文件状态,`IsEOF`检查是否到达文件末尾,以及`GetLastError`获取最近一次操作的错误代码。 `CFile`类在MFC中是一个...
#define EP_OUT 0x02 // 数据输出端点 #define EP_IN 0x82 // 数据输入端点 // 发送命令到USB设备 void sendCommand(unsigned char cmd) { // 使用EP_CMD端点发送命令 USB_SendPacket(EP_CMD, &cmd, 1); } // 向...
- `GetLastError`: 获取上一个错误代码。 ```csharp [DllImport("advapi32.dll")] public static extern IntPtr OpenSCManager(string lpMachineName, string lpSCDB, int scParameter); [DllImport("Advapi32.dll...
public const uint WM_DESTROY = 0x0002; ``` 4. 调用API函数:在声明和定义好后,就可以像调用普通C#方法一样调用这些API函数。 通过将所有的API函数声明和常量封装在一个程序集中,开发人员可以更方便地在C#项目...
"-e" :在探测和fuzz阶段打印错误信息(如getlasterror()) "-h" :帮助信息 ####常用Fuzz命令实例: kDriver Fuzz.exe -s 进行驱动枚举,将CreateFile成功的驱动设备名称,以及部分受限的驱动设备名称打印并写入...
例如,将十六进制数字`0x48`(ASCII码对应的字符为'H')发送出去,可以写成`m_Comm.PutData(L"\x48")`。 3. **数据接收**:通过`CMFCCOMM`对象的`GetCommPort`函数可以监听串口的数据。当串口接收到数据时,通常会...
5. **数据传输**:使用`send()`或`recv()`函数进行数据的发送和接收。 6. **清理**:完成通信后,需要关闭Socket并调用`WSACleanup()`来释放资源。 #### 示例代码分析 下面对给定的代码进行逐行分析: ```cpp #...
5. **Handle和 IntPtr 类型**:Windows API经常使用句柄(HANDLE)类型,在C#中通常使用`IntPtr`来表示。句柄是无符号整数,表示系统资源的引用。 6. **Marshaling(封送处理)**:.NET Framework会自动处理内存...