Compartilhar via


Block Driver Registry Settings

Windows Mobile Not SupportedWindows Embedded CE Supported

9/8/2008

O Device Manager utiliza e gerencia várias teclas Registro na HKEY_LOCAL_MACHINE\Drivers chave Registro para carregar, controlar e descarregar drivers dispositivo bloco linear.

Dispositivos internos dependem as configurações Registro para estar presente na inicialização. Essas chaves devem fazer parte do Registro usar como padrão, que inclui as chaves Registro e valores que você instalar.

Você pode instalar chaves para dispositivos removíveis bloco, such as memória flash linear memória PC Cards, na primeira utilização do dispositivo.

Este tópico contém informações sobre o seguinte:

  • Nome limitações para dispositivos de bloco AutoLoad
  • Chaves do Registro do dispositivo do bloco do cartão PC
  • Chaves do Registro do dispositivo de bloco interna
  • As chaves do Registro driver de dispositivo ATAPI do bloco
  • Seguro de configurações do Registro de Cartão digital
  • As unidades de disco rígido

Nome limitações para dispositivos de bloco AutoLoad

Os OEMs que adicionar AutoLoad Drivers bloco para sua plataforma devem manter AutoLoad Subchaves limitados a sete caracteres para evitar conflitos de nome possíveis.

Dentro de codificar Registro que configura o driver, o AutoLoad seqüência de caracteres sub-Key determina o nome de um dispositivo armazenamento. Because of o limite sete caractere, dois drivers nomeado bloco Device1 e BlockDevice2 são ambos reduzido para BlockDe, criando um estar em conflito com nome.

O seguinte exemplo Configura Storage Manager para AutoLoad Dois armazenamento drivers, BlockDevice1 e BlockDevice2.

[HKEY_LOCAL_MACHINE\System\StorageManager\Autoload\BlockDevice1]
    "DriverPath"="Drivers\\BuiltIn\\BlockDevice1"
    "LoadFlags"=dword:1
    "BootPhase"=dword:0

[HKEY_LOCAL_MACHINE\System\StorageManager\Autoload\BlockDevice2]
        "DriverPath"="Drivers\\BuiltIn\\BlockDevice2"
        "LoadFlags"=dword:1
        "BootPhase"=dword:1

Observe que os dois dispositivos armazenamento serão ainda trabalho, mas um não será accessibly via o armazenamento Gerenciador API que pode levar a funcionalidade em alguns aplicativos limitada.

Para trabalho em torno esse problema, reduza o AutoLoad chave nomes a ser menor do que 7 caracteres:

[HKEY_LOCAL_MACHINE\System\StorageManager\Autoload\BlkDev1]
    "DriverPath"="Drivers\\BuiltIn\\BlockDevice1"
    "LoadFlags"=dword:1
    "BootPhase"=dword:0

[HKEY_LOCAL_MACHINE\System\StorageManager\Autoload\BlkDev2]
        "DriverPath"="Drivers\\BuiltIn\\BlockDevice2"
        "LoadFlags"=dword:1
        "BootPhase"=dword:1

Chaves do Registro do dispositivo do bloco do cartão PC

A detecção removível bloco dispositivos, o Device Manager inicia uma seqüência detecção para determinar o tipo de dispositivo específico.

O valor da Pasta Registro subchave sob a HKEY_LOCAL_MACHINE\Drivers\PCMCIA\MyDriver chave Registro é opcional. Seu valor determina os nomes pasta que são associado com volumes sistema de arquivos.

É o valor usar como padrão Cartão de armazenamento Para o volume primeiro, Card2 de armazenamento Para o segundo e assim por diante.

De exemplo, se você usar o valor da Pasta subchave Registro para alteração de nome da pasta para Minha pasta, que é o nome do primeiro dispositivo. É a segunda pasta Meu Folder2, e assim por diante.

Leituras driver de dispositivo as bloco de Pasta subchave Registro quando o driver sistema de arquivos solicita um nome da pasta.

O HKEY_LOCAL_MACHINE\Drivers\PCMCIA\Detect\20 chave Registro é um exemplo. O 20 subchave Registro pode ser qualquer outro número. Seu valor determina a ordem na qual o Device Manager tenta do driver MyDriverDetectdisk função relativo aos outros drivers ' funções detecção ao tentar identificar um tipo desconhecido de PC Card.

Para obter mais informações sobre o Device Manager, consulte Gerenciador de dispositivos.

O Device Manager requer chaves Registro para iniciar a seqüência detecção. O seguinte chave do Registro exemplos apresentação como um nomeado driver PC Card MyDriver usa chaves Registro:

[HKEY_LOCAL_MACHINE\Drivers\PCMCIA\MyDriver]
    "Prefix" = "XXX"
    "Dll" = "MyDriver.DLL"
    "Index" = DWORD:1
    "Order" = DWORD:1
    "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
[HKEY_LOCAL_MACHINE\Drivers\PCMCIA\Detect\20]
    "Dll"="MyDriver.DLL"
    "Entry"="MyDriverDetectdisk"

Chaves do Registro do dispositivo de bloco interna

O HKEY_LOCAL_MACHINE\Drivers\BuiltIn chave Registro reconhece interno dispositivos bloco. O valor da Pasta subchave Registro é opcional.

O seguinte chave do Registro exemplo mostra como um interno chamado driver MyDriver deve usar o HKEY_LOCAL_MACHINE\Drivers\BuiltIn chave Registro:

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\MyDriver]
    "Prefix" = "XXX"
    "Dll" = "MyDriver.DLL"
    "Index" = DWORD:1
    "Order" = DWORD:1
    "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"

As chaves do Registro driver de dispositivo ATAPI do bloco

O driver ATA/ATAPI é Windows Embedded CE contém componentes que podem ser adicionados ou removidos com base na variável SYSGEN as configurações. A seguinte tabela mostra os componentes para o driver ATA/ATAPI.

Variável SYSGEN Descrição

SYSGEN_ATAPI_PCMCIA

PCMCIA ata/suporte disco PC Card.

SYSGEN_ATAPI_PCIO

Placa PCI ATA/ATAPI hospedar barramento adaptador suporte. Somente disco rígido.

SYSGEN_ATAPI_PCIO_CD

Placa PCI ATA/ATAPI hospedar barramento adaptador suporte. ATA disco rígido e CD/DVD somente.

SYSGEN_ATAPI_PCIP_PDC20262

Placa PCI ATA/ATAPI hospedar barramento adaptador suporte. ATA disco rígido, CD/DVD e periférico adaptador barramento hospedar PCI Promise PDC2026.

SYSGEN_ATAPI

Suporte completo ATA/ATAPI, inclusive, pcmcia/disco PC Card, disco rígido, CD/DVD e PDC2026 Promise PCI.

A seguinte tabela mostra as dependências para as variáveis ATA/ATAPI SYSGEN.

Variáveis SYSGEN Dependências

SYSGEN_ATAPI_PCIO_CD

SYSGEN_ATAPI_PCIO

SYSGEN_ATAPI_PCIP_PDC20262

SYSGEN_ATAPI_PCIO_CD, SYSGEN_ATAPI_PCIO

SYSGEN_ATAPI

SYSGEN_ATAPI_PCMCIA, SYSGEN_ATAPI_PCIO, SYSGEN_ATAPI_PCIO_CD, SYSGEN_ATAPI_PCIP_PDC20262

O driver ATAPI consiste em um enumerador IDE e um driver ATA/ATAPI. O enumerador IDE está ativado para cada controlador IDE. Na ativação, o enumerador IDE examina o primário e secundário canalizar, se houver, do controlador na pesquisa dos dispositivos ATA/ATAPI de.

Se o enumerador encontrar um dispositivo, ele chama uma função gerar especificada no Registro. Desde que um driver suporta múltiplo controladores IDE, essa função gerar distingue um controlador IDE de outro. Essa função é especificada no arquivo Platform.reg para um design OS. Nenhuma modificação para a função gerar é necessária.

A seguinte lista mostra a localidade dos arquivos Registro para o driver ATAPI:

  • %_WINCEROOT%\public\common\oak\drivers\block\atapi
    • Ali1543.reg
    • Genericide.reg
    • Geodeide.reg
    • I82371.reg
    • Pdc20262.reg
  • %_WINCEROOT%\public\common\oak\files
    • Common.reg
  • %_WINCEROOT%\platform\ <sua plataforma≫ \files
    • Platform.reg

O seguinte exemplo Registro mostra as configurações para o driver Intel i82371 Registro.

; SpawnFunction specified in platform.reg.
// The top-most key is that of the IDE enumerator

[\Template\<Controller>]
   "IClass"=multi_sz:"{CDDC3621-3512-4b3f-BB6F-B4DD5E061795}"
   "Prefix"="IDE"
   "Dll"="atapi.dll"
   "Order"=dword:06
   "Class"=dword:01
   "SubClass"=dword:01
   "ProgIF"=dword:80
   "VendorID"=dword:8086           ; e.g., i82371 Vendor ID
   "ConfigEntry"="GenericConfig"   ; PCI configuration entry point
   "Legacy"=dword:01               ; legacy mode; use Irq for IRQ of primary channel and Irq+1 for IRQ of secondary channel; only required for legacy on-board controllers
   "Irq"=dword:0E                  ; 14; provided by bus driver
   "SysIntr"=dword:00              ; SysIntr not specified; provided by bus driver
   "DMAAlignment"=dword:04         ; default DMA alignment
   "SoftResetTimeout"=dword:03     ; ATA/ATAPI spec defines 31s ceiling; this is too long
;  "IsrDll"=""                     ; not required; only required for bus-agnostic drivers, e.g., Promise PDC20262; ATA PCMCIA/PC Card disk
;  "IsrHandler"=""                 ; not required; only required for bus-agnostic drivers, e.g., Promise PDC20262; ATA PCMCIA/PC Card disk
   "RegisterStride"=dword:01       ; ATA register stride; register block is contiguous

// Under the IDE enumerator key are 4 subkeys; one subkey for each possible device on a // two-channel controller: Device0 = master on primary channel, Device1 = slave on
// primary channel, Device2 = master on secondary channel, Device3 = slave on secondary
// channel

[\Template\<Controller>\Device0]
   "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
   "Prefix"="DSK"
   "Dll"="atapi.dll"
   "InterruptDriven"=dword:01      ; enable interrupt driven I/O
   "DMA"=dword:01                  ; enable DMA; 0 = disabled, 1 = enabled, 2 = enabled for hard disks and disabled for CD-ROMs
   "DoubleBufferSize"=dword:10000  ; 65536 byte (128 sectors) double buffer; maximum is 256 secotrs
   "DrqDataBlockSize"=dword:200    ; 1 sector (512 byte) DRQ data block
   "WriteCache"=dword:01           ; enable on-disk write cache
   "LookAhead"=dword:01            ; enable on-disk look-ahead
   "DeviceId"=dword:00             ; device 0, i.e., primary master
   "TransferMode"=dword:FF         ; use device default transfer mode (Ultra DMA 3, 4 require 80-conductor cable)

// The "TransferMode" byte value can take on the following values:

Mode                                Value (Hex)
----                                -----
PIO default mode                    00
PIO default mode, disable IORDY     01
PIO flow control transfer mode      Mode 0=08, 1=09, 2=0A, 3=0B, 4=0C
Multiword DMA mode                  Mode 0=20, 1=21, 2=22
Ultra DMA mode                      Mode 0=40, 1=41, 2=42, 3=43, 4=44

// Note: Not all drives support all DMA modes; Ultra DMA modes 3 and 4 require an 80-conductor cable.

[\Template\<Controller>\Device1]
...
[\Template\<Controller>\Device2]
...
[\Template\<Controller>\Device3]
...

Seguro de configurações do Registro de Cartão digital

O seguinte apresentação exemplos chave do Registro configurações de driver de memória SD Registro.

; SD Memory Storage class driver
[HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class]
   "Dll"="SDMemory.dll"
   "Prefix"="DSK"
   "BlockTransferSize"=dword:40  ; send no more than 64 blocks of data per bus transfer
   ;"SingleBlockWrites"=dword:1  ; alternatively force the driver to use single block access
   ;"IdleTimeout"=dword:7D0      ; 2000 milliseconds
   ;"IdlePowerState"=dword:2     ; 0 == D0, 1 == D1, etc.
   ;"DisablePowerManagement"=""  ; if value present, then disable (remove value to enable)

   "Profile"="SDMemory"
   "IClass"=multi_sz:"{A4E7EDDA-E575-4252-9D6B-4195D48BB865}",
                     "{A32942B7-920C-486b-B0E6-92A702A99B35}"

Nomear o disco rígido unidades

Para que um nome exclusivo para cada disco rígido, você precisará adicionar "HDProfile" As chaves. O seguinte exemplo mostra como adicionar dois, de forma exclusiva-nomeado unidades de disco rígido, uma das quais é o primário mestre e um o primário escravo.

[$(PCI_BUS_ROOT)\Template\ALI1453\Device0]
    “HDProfile”=”HDProfile2” ; primary master

[$(PCI_BUS_ROOT)\Template\ALI1453\Device1]
    “HDProfile”=”HDProfile3” ; primary slave

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\HDProfile2]
    "Name"="IDE Hard Disk Drive"
    "Folder"="MyHD"

[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\HDProfile3]
    "Name"=" second IDE Hard Disk Drive"
    "Folder"="SecondaryHD"

See Also

Concepts

Block Driver Architecture
Block Driver Samples