createfilecreatefile
高分寻求帮助!我最近学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是怕没人回答,分浪费,不够可以再给
------Solutions------
用DDKtools目录下的chkinf工具检查下你的inf文件是否正确。
------Solutions------
一看就是你的设备名错了,设备名和服务名是两个不同的东西,初学者这里可能会犯错误。
------Solutions------
看看这个函数:
BOOLProtoStartService()
{
BOOLbRet=FALSE;
SC_HANDLEhSCM=NULL,hService=NULL;
charszLinkName[]="slNdisProt";
……
}
它指向的服务名是slNdisProt,我试了一下把packet.inf里的注册服务部分的packet改成slNdisProt就不会报错了
把packet.inf直接粘给你吧,我也是刚刚学这个
;-------------------------------------------------------------------------
;PACKET.INF--SampleProtocolDriver
;
;-------------------------------------------------------------------------

[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\Inteces,UpperRange,,noupper
HKR,"Ndi\Inteces","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
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-34047-1.html
能生虫子的食物很少了
可以说这是在筛选优秀人人才