阅读:1437回复:4
安装 Driver 时为什么会出现 Overlapped I/O operation is in progress?
各位 DX,偶写的一个非常简单的 Driver(就是只含有一个 空DriverEntry)的空架子,在用下面函数安装的时候总是会出现
错误号为 error 997(Overlapped I/O operation is in progress) 的错误,这是为什么呢? 我很菜了,以前从没做过 Driver 方面的事情,请 DX 们不吝赐教。 BOOL LoadDeviceDriver( const TCHAR * Name, const TCHAR * Path, HANDLE * lphDevice ) { SC_HANDLE schSCManager; BOOL okay; schSCManager = OpenSCManager( NULL, NULL, SC_MANAGER_ALL_ACCESS ); // Remove old instances RemoveDriver( schSCManager, Name ); // Ignore success of installation: it may already be installed. InstallDriver( schSCManager, Name, Path ); // Ignore success of start: it may already be started. StartDriver( schSCManager, Name ); // Do make sure we can open it. okay = OpenDevice( Name, lphDevice ); CloseServiceHandle( schSCManager ); return okay; } |
|
沙发#
发布于:2003-06-09 18:05
搞定了。
ps: 这个网真是超级慢啊。我晕死,怕了! |
|
板凳#
发布于:2003-06-09 19:44
怎么解决的,讲解一下,关注ing!
|
|
地板#
发布于:2003-06-09 20:40
是我自己的问题,上面的代码中
RemoveDriver( schSCManager, Name ); InstallDriver( schSCManager, Name, Path ); StartDriver( schSCManager, Name ); 都是自己的方法。 其中 RemoveDriver 的时候,因为有先前通过 OpenDevice 得到的句柄没有释放,所以 Remove 的状态一直为 Pending,直到那个句柄被释放为止。 |
|
地下室#
发布于:2003-06-10 09:16
谢谢讲解,呵呵
|
|