自己写的Ring0驱动,已经为设备创建符号链接,CreateFile ReadFile 正常WriteFile 时驱动没反应 GetLastError 会返回 6 句柄 句柄无效
原文出处
XXXXXXXXXXXXXXXXXXXXXXX/s/blog_XXXXXXXXXXXXXXXXXXXml
无非是参数的类型与C++不同而造成的问题,在C#中:
[DllImport("kernel32.dll")]
private static extern bool WriteFile(int hFile, byte[] lpBuffer, int nNumberOfBytesToWrite, ref int lpNumberOfBytesWritten, IntPtr lpOverlapped);
注意最后一个参数,如果采用ref OVERLAPPED 传一个空OVERLAPPED 的话就会返回错误6句柄无效。采用C#专为句柄创造的数据类型IntPtr类型,IntPtr.Zero就可以等效于C++中传入null了。