发信人: bbinn (远离BBS一个月,高高兴兴过大年), 信区: Software
标  题: 如何创建一个服务

如果用户以管理员登录,那么.sys文件放在任何目录中,都可以被程序调用。但
是如果以非管理员登录,则.sys文件必须放在WinNT\System32\drivers目录中(其
他类型的服务通常可以放在system32目录中)。你需要先以管理员登录到Windows
 NT/2000(普通用户没有建立服务的权利)。如果你有Windows NT/2000 Resouce
 Kit,你可以使用命令行工具sc.exe创建一个服务,它会自动修改注册表。如:
    sc Create myservice BinPath= %%SystemRoot%%\System32\drivers\mydriv
er.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设备驱动及开发》 


--
 ◆◆◆ 风 筝 ◆◆◆
 ██        _______________________
 ██/_   █◤   ◥◤ 


bbinn

文章数: 11834
积分: 5.3
等级: 高级站友