PCI Bus Driver Registry Settings
9/8/2008
O seguinte exemplo chave do Registro mostra o driver barramento PCI chaves Registro, que são em % _WINCEROOT%\Public\Common\OAK\Drivers\PCIBus\PCIBus.reg.
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PCI]
"Dll"="PCIbus.dll"
"Order"=dword:20
"Flags"=dword:8
"BusIoctl"=dword:2a0048
"IClass"=multi_sz:"{CD149194-286F-4095-9694-D70E6AB867C3}=%b","{6F40791D-300E-44E4-BC38-E0E63CA8375C}=%b"
; Registry enumerator used for loading each PCI device driver instance
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PCI\Instance]
"InterfaceType"=dword:5
"BusName"="PCI"
O seguinte exemplo chave do Registro mostra o modelo e chaves instância resultante para o driver ES1371 localizado em % _WINCEROOT%\Public\Common\OAK\Drivers\WaveDev\PDD\ES1371. Ele é o modelo fornecido no seu arquivo Platform.reg.
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PCI\Template\WaveDev]
"Prefix"="WAV"
"Dll"="es1371.dll"
"Index"=dword:1
"Order"=dword:0
"Dma"=dword:5
"Class"=dword:04
"SubClass"=dword:01
"ProgIF"=dword:00
"VendorID"=multi_sz:"1274","1274"
"DeviceID"=multi_sz:"1371","5880"
"IsrDll"="giisr.dll"
"IsrHandler"="ISRHandler"
O seguinte exemplo mostra chave do Registro o Instância chave do Registro de instância 1 do driver de ES1371.
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PCI\Instance\WaveDev1]
DWORD: SysIntr = 0x20
DWORD: Irq = 0x9
DWORD: IoLen = 0x40
DWORD: IoBase = 0xe000
DWORD: BusNumber = 0x0
DWORD: InterfaceType = 0x5
DWORD: SubSystemID = 0x1371
DWORD: SubVendorID = 0x1274
DWORD: RevisionID = 0x8
DWORD: DeviceID = 0x1371
DWORD: VendorID = 0x1274
DWORD: ProgIF = 0x0
DWORD: SubClass = 0x1
DWORD: Class = 0x4
SZ: IsrHandler = ISRHandler
SZ: IsrDll = giisr.dll
DWORD: Dma = 0x5
DWORD: Order = 0x0
DWORD: Index = 0x1
SZ: Dll = es1371.dll
SZ: Prefix = WAV
DWORD: InstanceIndex = 0x1
Tudo o que o driver precisa é fornecido pelo IoBase, IoLen, IRQ e SysIntr. Informações de identificação de dispositivo também for fornecidas, que inclui Classe, SubClass, ProgIF, VendorID, DeviceID, RevisionID, SubVendorID e SubSystemID. 0 x 5 for especificado para o PCI InterfaceType, e 0 (zero) é especificado para o barramento PCI BusNumber. Essas especificações são úteis quando chamado HalTranslateBusAddress Ou TransBusAddrToVirtual.
Um driver lê o IoBase, IoLen, IRQ, SysIntr, InterfaceType e BusNumber Valores out of o Registro e em seguida, chama TransBusAddrToVirtual Para criar um endereço virtual de base para o dispositivo. O barramento não importa para o driver porque todas as informações relevantes é fornecida para ela. Assim, você também pode usar esse driver para um dispositivo ISA, se os valores esperados Registro estão Pre-set no Registro.