VS2008下使用WINIO初始化失败StartWinIoDriver()函数

时间:2020-12-20 17:26:16
我使用的是VS2008 + WINIO 3.0
安装:
1:编译WinIo\Source\Dll\WinIo.sln 用debug编译
2:打开文件夹WinIo\Source\Dll\x86\Debug 找到WinIo32.lib 以及WinIo32.dll 
WinIo\Binaries\WinIo32.sys
     WinIo\Source\Dll\winio.h +WinIo\Source\Drv\winio_nt.h 
3:将.h文件加载到工程里面,然后将lib文件在工程-属性-链接-添加依赖 里面讲lib的地址输入进去
     dll和sys文件放到 工程debug目录下面然后进行编译;
4:编译成功 调用时 oninitdialog()里面添加:
m_hhkLowLevelKybd = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, AfxGetInstanceHandle(), 0);
int i = InitializeWinIo();
return TRUE;  // 傳回 TRUE,除非您對控制項設定焦點

5:报错 进去查看发现
bool __stdcall InitializeWinIo()
{
bool bResult;
DWORD dwBytesReturned;

g_Is64BitOS = Is64BitOS();

hDriver = CreateFile(L"\\\\.\\WINIO",
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);

// If the driver is not running, install it

if (hDriver == INVALID_HANDLE_VALUE)
{
GetDriverPath();

bResult = InstallWinIoDriver(szWinIoDriverPath, true);
//- szWinIoDriverPath 0x100954a8 "f:\NC_SealSvn\剑网3按键精灵\JW3AJF5F6F7F8\Debug\winio64.sys" wchar_t [32768]
//初始化成功程序文件名正确

if (!bResult)
return false;

bResult = StartWinIoDriver();
//调用上面函数 bResult = FALSE;
if (!bResult)
return false;

hDriver = CreateFile(L"\\\\.\\WINIO",
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);

if (hDriver == INVALID_HANDLE_VALUE)
return false;
}

5 个解决方案

#1


是否管理员权限执行 是否安装好驱动

#2


http://blog.csdn.net/l1258914199/article/details/8937764?reload

#3


你好可能您没看清楚我的代码截图 第23行有注释 我特地把地址打印出来了 。 获取我的..64.syS已经获取成功了!

#4


引用 2 楼 zgl7903 的回复:
http://blog.csdn.net/l1258914199/article/details/8937764?reload


引用 2 楼 zgl7903 的回复:
http://blog.csdn.net/l1258914199/article/details/8937764?reload

 你好可能您没看清楚我的代码截图 第23行有注释 我特地把地址打印出来了 。 获取我的..64.syS已经获取成功了! 
所以你的那个网址对我没用啊

#5


严格区分32位还是64位了吗?

#1


是否管理员权限执行 是否安装好驱动

#2


http://blog.csdn.net/l1258914199/article/details/8937764?reload

#3


你好可能您没看清楚我的代码截图 第23行有注释 我特地把地址打印出来了 。 获取我的..64.syS已经获取成功了!

#4


引用 2 楼 zgl7903 的回复:
http://blog.csdn.net/l1258914199/article/details/8937764?reload


引用 2 楼 zgl7903 的回复:
http://blog.csdn.net/l1258914199/article/details/8937764?reload

 你好可能您没看清楚我的代码截图 第23行有注释 我特地把地址打印出来了 。 获取我的..64.syS已经获取成功了! 
所以你的那个网址对我没用啊

#5


严格区分32位还是64位了吗?