首先介绍一下PNPENV的功能,此工具可以在DOS下获得网卡的相关参数,我们可以利用此参数正确的生成网卡的注册表。PNPENV执行完后返回如下的变量
SET PNPV=10EC
SET PNPD=8139
SET PNPS=813910EC
SET PNPB=01
SET PNPE=05
SET PNPF=00
SET PNPK=28
SET PNPR=10
SET PNPZ=16
SET PNPI=0B
SET PNPN=A
SET PNPC=02
SET PNPU=00
SET PNPP=00
如果 PNPB=01,则网卡的注册表对应如下[HKEY_LOCAL_MACHINE\Enum\PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10{%PNPK%}F000]
PNPK即是对应的网卡关键注册码。
如果PNPB=00,则网卡的注册表对应如下[HKEY_LOCAL_MACHINE\Enum\PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10\BUS_00&DEV_{%PNPE%}&FUNC_00]
PNPE即是对应的网卡关键注册码。
一般PNPB=01对应的是INTEL系列,PNPB=00对应的是VIA和SIS系列。
而PNPV PNPD PNPS 对应网卡下面的键值,如果工作统一用8139网卡,则全是一样,不用改,分别对应如果红色部分 HKEY_LOCAL_MACHINE\Enum\PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10
知道怎么回事了吧?
我现在贴两个注册表
一、PNPB=01时
REGEDIT4
[HKEY_LOCAL_MACHINE\Enum\PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10]
[HKEY_LOCAL_MACHINE\Enum\PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10{%PNPK%}F000]
“Capabilities”=hex:14,00,00,00
“HardwareID”=“PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10,PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC,PCI\VEN_10EC&DEV_8139&REV_10&CC_0200,PCI\VEN_10EC&DEV_8139&CC_020000,PCI\VEN_10EC&DEV_8139&CC_0200”
“CompatibleIDs”=“PCI\VEN_10EC&DEV_8139&REV_10,PCI\VEN_10EC&DEV_8139,PCI\VEN_10EC&CC_020000,PCI\VEN_10EC&CC_0200,PCI\VEN_10EC,PCI\CC_020000,PCI\CC_0200,PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10”
“DeviceDesc”=“Realtek RTL8139/810x Family Fast Ethernet NIC”
“HWRevision”=“016”
“Class”=“Net”
“ConfigFlags”=hex:10,00,00,00
“ClassGUID”=“{4d36e972-e325-11ce-bfc1-08002be10318}”
“Driver”=“Net\0000”
“Mfg”=“Realtek Semiconductor Corp.”
[HKEY_LOCAL_MACHINE\Enum\PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10{%PNPK%}F000\Bindings]
“NWLINK\0000”=“”
“MSTCP\0000”=“”
二、PNPB=00时
REGEDIT4
[HKEY_LOCAL_MACHINE\Enum\PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10]
[HKEY_LOCAL_MACHINE\Enum\PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10\BUS_00&DEV_{%PNPE%}&FUNC_00]
“Capabilities”=hex:14,00,00,00
“HardwareID”=“PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10,PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC,PCI\VEN_10EC&DEV_8139&REV_10&CC_0200,PCI\VEN_10EC&DEV_8139&CC_020000,PCI\VEN_10EC&DEV_8139&CC_0200”
“CompatibleIDs”=“PCI\VEN_10EC&DEV_8139&REV_10,PCI\VEN_10EC&DEV_8139,PCI\VEN_10EC&CC_020000,PCI\VEN_10EC&CC_0200,PCI\VEN_10EC,PCI\CC_020000,PCI\CC_0200,PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10”
“DeviceDesc”=“Realtek RTL8139/810x Family Fast Ethernet NIC”
“HWRevision”=“016”
“Class”=“Net”
“ConfigFlags”=hex:10,00,00,00
“ClassGUID”=“{4d36e972-e325-11ce-bfc1-08002be10318}”
“Driver”=“Net\0000”
“Mfg”=“Realtek Semiconductor Corp.”
[HKEY_LOCAL_MACHINE\Enum\PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10\BUS_00&DEV_{%PNPE%}&FUNC_00\Bindings]
“NWLINK\0000”=“”
“MSTCP\0000”=“”
再通过LITENET的QPATCH工具来替换注册表里的变量,我们就可以获得正确的网卡的注册表。导入,按道理网卡就可以驱动了,
现在的问题是,假如上传的是VIA芯片组,那么只能在工作站是PNPB=00时,通过正常,而PNPB=01是通不过,WIN。COM过后脱网,表明网卡没有正确驱动,不知是怎么回事。
假如我先用NDIS3PNP驱动,进入一次98,此时NDIS5的注册表也一并导入,注意只需进一次,然后我删除NIDIS3的驱动,重启,NDIS5的驱动就可以正常工作,为什么非要进一次桌面NDIS5才能工作呢?想不通
我看了创世纪注册表,先也是用NDIS3,进入后,再用程序自动删除NDIS3(猜测,我不是创世纪的),而用NDIS5启动,让人感觉好像是真正的NDIS5PNP,其实他也要借用NDIS3PNP来进一次桌面,来激活NDIS5吧。
由于该程序是在某个FTP上下的,还是网卡给的,记不清了。在这里我想请问程序开发者,其它的一些参数起什么作用?能出来介绍一下是最好,盼望中。。。。
我在把批处理的内容处理一下
pnpenv>s:\ABC.bat
call s:\ABC.bat
IF “%PNPB%”==“01” GOTO intel
goto via
:intel
qpatch D:\WINBOOT\intel.reg S:\PATCH.REG
goto end
:via
qpatch D:\WINBOOT\via.reg S:\PATCH.REG
goto end
:end
regedit S:\PATCH.REG