软件注册站
热情软件屋

 
调用了sys文件, 在以普通身份登录时老是出错
编号: QA003405    
建立日期: 2000年10月15日 最后修改日期: 2000年10月15日
所属类别: C/C++ - DDK与硬件设备
   
    操作系统: windows NT&2000
    编程工具: vc++
    问题: 您好!
    我在生成一个程序中,调用了sys文件,在一超级用户登录时正常执行,在以普通身份登录时老是出错,说是一个sys文件不能加载.而我请教了一些朋友,他们说应该将该文件做为服务加入系统,我不知是否正确,如果正确的话,应该怎么加入呢?期盼专家给我一个答复!
    水平: 中级(jjg)
   
    这里估计你说的.sys文件是一个Kernel驱动。如果用户以管理员登录,那么.sys文件放在任何目录中,都可以被程序调用。但是如果以非管理员登录,则.sys文件必须放在WinNT\System32\drivers目录中(其他类型的服务通常可以放在system32目录中)。你需要先以管理员登录到Windows NT/2000(普通用户没有建立服务的权利)。如果你有Windows NT/2000 Resouce Kit,你可以使用命令行工具sc.exe创建一个服务,它会自动修改注册表。如:
    sc Create myservice BinPath= %%SystemRoot%%\System32\drivers\mydriver.sys DisplayName= "My Service" type= kernel start= auto error= ignore
    然后重新启动系统,以后任何用户都可以调用该驱动了。注意,你的程序中不需要再调用CreateService之类的函数,只需要调用CreateFile就可以了。
    如果没有Resouce Kit,你也可以手工修改注册表。如:
    1、在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\下建立新键myservice。
    2、在myservice下创建值
    "Type"=dword:00000001
    "Start"=dword:00000002
    "ImagePath"="%%SystemRoot%%\System32\drivers\mydriver.sys"
    "ErrorControl"=dword:00000001
    "DisplayName"="NTPort Library Driver"
    
    相关书籍:
    《WINDOWS设备驱动程序技术内幕 》
    《实用技术:WINDOWS NT与WINDOWS 2000设备驱动及开发》

    

此问题由李海回答。

附加关键字:编程, 源程序, programming, source code, C/C++, MFC, C++ Builder, Borland C++, Turbo C, C, BCB, DDK与硬件设备, hardware, ddk, vtoolsd, driver studio, winrt

   
 
把这个问题推荐给朋友
   
 
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio