fu_tiansweet
驱动老牛
驱动老牛
  • 注册日期2004-01-08
  • 最后登录2009-07-10
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望526点
  • 贡献值0点
  • 好评度281点
  • 原创分0分
  • 专家分0分
阅读:2924回复:5

有关WinIo的问题,谢谢指教,40分相送!!

楼主#
更多 发布于:2004-11-09 13:48
我下载了WinIo的相关资料,并按照要求将WinIo.dll、WinIo.vxd、WinIo.sys存放到正确的位置,编译也能通过,但是为什么在调用它的函数时就不能正确返回呢(首先调用的是InitializeWinIo()函数,就返回不成功)。谢谢指教,40分相送!!
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-11-09 14:15
winio.sys和winio.vxd应该需要安装为service才能使用
具体的,你可使用CreateService等函数来加载这个驱动,
然后去调用winio.dll中的函数才有效
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
fu_tiansweet
驱动老牛
驱动老牛
  • 注册日期2004-01-08
  • 最后登录2009-07-10
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望526点
  • 贡献值0点
  • 好评度281点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-11-09 14:45
我下载资料的网站的介绍:

WINIO是一个绿色环保软件,它不需要向注册表中添加任何信息,只要你把WINIO.VXD、WINIO.SYS、WINIO.DLL放在你的应用程序所在的文件夹下就可以了。

这该如何理解呢?

你所说的使用CreateService等函数来加载这个驱动,可以给个例子吗?
 :(
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-11-09 14:53
我下载资料的网站的介绍:

WINIO是一个绿色环保软件,它不需要向注册表中添加任何信息,只要你把WINIO.VXD、WINIO.SYS、WINIO.DLL放在你的应用程序所在的文件夹下就可以了。

这该如何理解呢?

你所说的使用CreateService等函数来加载这个驱动,可以给个例子吗?
 :(

ddk中有sample
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-11-09 15:02
刚才看了一下winio中已经在InitializeWinIo函数中调用了
InstallWinIoDriver函数
bool _stdcall InstallWinIoDriver(PSTR pszWinIoDriverPath, bool IsDemandLoaded)
{
  SC_HANDLE hSCManager;
  SC_HANDLE hService;

  // Remove any previous instance of the driver

  RemoveWinIoDriver();

  hSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);

  if (hSCManager)
  {
    // Install the driver
    
    hService = CreateService(hSCManager,
                             "WINIO",
                             "WINIO",
                             SERVICE_ALL_ACCESS,
                             SERVICE_KERNEL_DRIVER,
                             (IsDemandLoaded == true) ? SERVICE_DEMAND_START : SERVICE_SYSTEM_START,
                             SERVICE_ERROR_NORMAL,
                             pszWinIoDriverPath,
                             NULL,
                             NULL,
                             NULL,
                             NULL,
                             NULL);

    CloseServiceHandle(hSCManager);

    if (hService == NULL)
      return false;
  }
  else
    return false;

  CloseServiceHandle(hService);
  
  return true;
}

所以你不需要调用了,而直接调用InitializeWinIo就可以了,你可调试一下,看到底是什么错误
或者在InitializeWinIo后调用GetLastError()看看
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-11-09 16:21
看一看里面的readme.txt
里面有使用的方法
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
游客

返回顶部