本版专家分:40
结帖率:76.19%楼主 发表于: 2008-01-10 10:37:26
高分寻求帮助!我最近学ndis驱动,按照王艳平的第9章的那个例子,安装了个ndis的协
议驱动:protoDrv.sys,但是应用程序createfile()时失败,错误码为2,说是找不到系
统找不到文件,这是怎么回事?
安装完驱动后,我查了注册表的驱动安装目录,发现多了两个service键值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Packet;
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\slNdisProt;
packet键的ImagePath="system32\DRIVERS\ProtoDrv.sys";
slNdisProt键的ImagePath="\??\E:\DriverEnv\8\ProcApp\ProcDrv.sys";
其中packet键是我packet.inf文件指定的,这个正常,但是slNdisProt键并不是我要安
装的阿,怎么会也写入注册表?而且slNdisProt键的ImagePath怎么会那么怪?
slNdisProt是驱动程序定义的设备连接名称,但是好像不应该也写入到注册表中的
Services项阿!
这个问题困扰我好久,不解决没办法往下学,希望高手赐教!分无所谓,一开始50是怕没人回答,分浪费,不够可以再给
分享到:
| 举报 |
编辑 删除
管理 回复次数:3本版等级:
本版专家分:456
结帖率:100%得分:25 回复于: 2008-01-16 23:10:26
用DDKtools目录下的chkinf工具检查下你的inf文件是否正确,。
| 举报 |
编辑 删除
管理本版等级:
本版专家分:25
结帖率:66.67%得分:25 回复于: 2008-03-17 19:55:04
一看就是你的设备名错了,设备名和服务名是两个不同的东西,初学者这里可能会犯错误。
| 举报 |
编辑 删除
管理本版等级:
本版专家分:0
结帖率:100%得分:0 回复于: 2008-08-07 01:42:44
看看这个函数:
BOOLProtoStartService()
{
BOOLbRet=FALSE;
SC_HANDLEhSCM=NULL,hService=NULL;
charszLinkName[]="slNdisProt";
……
}
它指向的服务名是slNdisProt,我试了一下把packet.inf里的注册服务部分的packet改成slNdisProt就不会报错了
把packet.inf直接粘给你吧,我也是刚刚学这个
;-------------------------------------------------------------------------
;PACKET.INF--SampleProtocolDriver
;
;Copyright(c)1993-1999,MicrosoftCorporation
;-------------------------------------------------------------------------
[version]
Signature="$WindowsNT$"
Class=NetTrans
ClassGUID={4d36e975-e325-11ce-bfc1-08002be10318}
Provider=%Msft%
DriverVer=06/16/2004,5.00.2064
[Manufacturer]
%Msft%=MSFT
[MSFT]
%PACKET_Desc%=Install,MS_PACKET
;-------------------------------------------------------------------------
;InstallationSection
;-------------------------------------------------------------------------
[Install]
AddReg=Inst_Ndi
Characteristics=0;Hasnocharacterstic
CopyFiles=CpyFiles_Sys
;-------------------------------------------------------------------------
;Ndiinstallationsupport
;-------------------------------------------------------------------------
[Inst_Ndi]
HKR,Ndi,Service,,"slNdisProt";
HKR,Ndi,HelpText,,%slNdisProt_HelpText%
HKR,Ndi\Interfaces,UpperRange,,noupper
HKR,"Ndi\Interfaces","LowerRange",,"ndis5,ndis4"
;-------------------------------------------------------------------------
;Serviceinstallationsupport
;-------------------------------------------------------------------------
[Install.Services]
AddService=slNdisProt,,slNdisProt_Service_Inst
[slNdisProt_Service_Inst]
DisplayName=%slNdisProt_Desc%
ServiceType=1;SERVICE_KERNEL_DRIVER
StartType=3;SERVICE_DEMAND_START;<<===这里
ErrorControl=1;SERVICE_ERROR_NORMAL
ServiceBinary=%12%\ProtoDrv.sys;<<===这里
LoadOrderGroup="PNP_TDI"
AddReg=AddReg_slNdisProt_Service_Inst
Description=%slNdisProt_Desc%
[AddReg_slNdisProt_Service_Inst]
HKLM,"System\CurrentControlSet\Services\slNdisProt","TextModeFlags",%REG_DWORD%,0x0001
HKR,"Parameters","Test",,"Hello"
;-------------------------------------------------------------------------
;Supportforremovalofstaticregistrysettings
;-------------------------------------------------------------------------
[Install.Remove]
DelReg=Del_Static_Reg
[Install.Remove.Services]
DelService=slNdisProt
[Del_Static_Reg]
HKLM,"System\CurrentControlSet\Services\slNdisProt","TextModeFlags"
;-------------------------------------------------------------------------
;DeclareDestinationDirectoriesforfilecopy/deletion
;-------------------------------------------------------------------------
[DestinationDirs]
CpyFiles_Sys=12;DIRID_DRIVERS
;-------------------------------------------------------------------------
;FilestoCopy/Delete-ReferencedbyInstallandRemovesectionsabove
;-------------------------------------------------------------------------
[CpyFiles_Sys]
ProtoDrv.sys,,,2;<<===这里
[Strings]
Msft="Microsoft"
PACKET_Desc="DDKPACKETProtocol"
PACKET_HelpText="Anon-routableprotocoldesignedforuseinsmallLANs."
REG_DWORD=0x10001
| 举报 |
编辑 删除
管理以上就是关于createfile失败的全部内容,相信你一定会非常满意。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/shenmilingyu/article-17591-1.html
谢教授需要通过这样的表达来告诉政府一个严酷的事实
真实
5%每年