Compartilhar via


I/O Resource Manager

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Quando o sistema é inicializado, o enumerador barramento enumera o Registro e carrega todos os interno dispositivos baseiam este informações Registro. Você pode configurar este informações Registro. O I/O Resource Manager, em seguida, rastreia o atual estado dos recursos disponível no sistema e gerencia todas as outras solicitações recurso E/S e alocações por drivers barramento. Conseqüentemente, todos os drivers barramento devem recursos solicitação E/S o I/O Resource Manager quando eles carregar um driver cliente para dispositivos instaláveis ou outros tipos de dispositivos.

O I/O Resource Manager é uma parte intrínseca da Device Manager. O I/O Resource Manager controla a disponível recursos sistema inicializados a partir de Registro antes de quaisquer dispositivos são carregados. Controlar esses recursos impede acidental colisões quando dois ou mais drivers dispositivo tentam usar os mesmos recursos.

A OAL e o Registro geralmente Pre-allocate recursos espaço IRQ e E/S que solicitação drivers barramento. No entanto, o I/O Resource Manager não é limitado ao gerenciamento espaços E/S e IRQ. O conjunto específico de recursos disponível pode incluir qualquer que você definir. Barramento drivers, such as driver de barramento PCI, solicitação de IRQ e E/S recursos espaço a partir de I/O Resource Manager como ele carrega drivers dispositivo para os dispositivos encontrados. O mesmo é verdadeiro para o driver barramento PC Card e E/S recursos exigido por drivers cliente PC Card. Os cartão PC barramento driver lançamentos recursos como remover os usuários PC Cards do sistema.

Cada plataforma hardware tem exclusivo IRQs e E/S espaço disponível. IRQs para interno e dispositivos fixos devem mapa (n.); mapear (v.) a interrupção identificadores (SYSINTRs) na OAL. As IRQs para interno e dispositivos fixos devem ser excluídos a partir de disponível recursos. IRQs usados com o barramento PCI normalmente são compartilhados.

IRQs e E/S recursos espaço são predefinidos. O HKEY_LOCAL_MACHINE\Drivers\Resources\IRQ e HKEY_LOCAL_MACHINE\Drivers\Resources\IO Chaves Registro fornecem a estado inicial da I/O Resource Manager.

A seguinte tabela mostra as subchaves para essas chaves Registro.

Subchave Valor exemplo Descrição

Identificador

DWORD:1

Identificador de recurso. Este é um rotular para um conjunto de números e é definida em % _WINCEROOT%\Public\Common\DDK\Inc\Resmgr.h.

Mínimo

DWORD:1

Recurso menor numerado desse tipo.

Espaço

DWORD:16

Número de recursos no espaço de recurso.

Intervalos

"1, 3-5, 8"

Lista Comma-Separated de Inicialmente disponível intervalos recursos. O usar como padrão é NONE.

Compartilhado

"4"

Lista Comma-Separated de Inicialmente disponível compartilhados e recursos. O usar como padrão é NONE.

Observação

DWORD As entradas são interpretadas como hexadecimal constantes, mas as seqüências de caracteres são analisados como listas de C-constantes estilo.

O seguinte exemplo chave do Registro mostra configurações Registro I/O Resource Manager.

; Resources available at time of Device.exe initialization.
; Key names are descriptive; resource IDs are definitive.
; System IDs are defined in ddk\inc\resmgr.h.
; HIVE BOOT SECTION
[HKEY_LOCAL_MACHINE\Drivers\Resources\IRQ]
    "Identifier"=dword:1
    "Minimum"=dword:1
    "Space"=dword:F
    "Ranges"="1,3-7,9-0xF"
    "Shared"="1,3-7,9-0xF"

; I/O ranges are reserved for all drivers listed in this file that are not
; part of an expansion bus (PCI, PCMCIA, etc).  If your hardware platform does not
; have one of these peripherals, you might edit this list accordingly.  This
; sample configuration assumes that if you have any COM port, you also have all of
; the lower-numbered COM ports.
[HKEY_LOCAL_MACHINE\Drivers\Resources\IO]
    "Identifier"=dword:2
    "Minimum"=dword:0
    "Space"=dword:10000
IF BSP_NOSERIAL
    "Ranges"="0-0x5F,0x65-0x277,0x284-0x38F,0x392-0x3DF,0x3E2-0xFFFF"
ENDIF ; BSP_NOSERIAL
IF BSP_NOSERIAL !
    "Ranges"="0-0x5F,0x65-0x277,0x284-0x2F7,0x300-0x38F,0x392-0x3DF,0x3E2-0xFFFF"
ENDIF ; BSP_NOSERIAL !
IF BSP_SERIAL2
    "Ranges"="0-0x5F,0x65-0x277,0x284-0x2F7,0x300-0x38F,0x392-0x3DF,0x3E2-0x3E7,0x3F0-0xFFFF"
ENDIF ; BSP_SERIAL2
IF BSP_SERIAL3
    "Ranges"="0-0x5F,0x65-0x277,0x284-0x2E7,0x2F0-0x2F7,0x300-0x38F,0x392-0x3DF,0x3E2-0x3E7,0x3F0-0xFFFF"
ENDIF ; BSP_SERIAL3

Se recursos compartilhados estão disponível, você pode solicitação-los a qualquer momento. Eles só podem ser definidos se o espaço recurso é menor ou igual a 32.

ResourceCreateList Cria um novo tipo de recurso, mas porque você pode estaticamente inicializar extensões, você pode facilmente adicionar essas extensões para a chave Registro. Criar uma nova subchave e especificar um identificador entre 0x80000 e 0xFFFFF, que são definidos como RESMGR_BASE_OEM e RESMGR_MAX_OEM, respectivamente. Você também pode localizar esses valores em % _WINCEROOT%\Public\Common\DDK\Inc\Resmgr.h.

Somente processos com privilégios podem invocar o E/S Gerenciador de Recursos funções. Isso impede que mal-intencionado aplicativos confuso o sistema liberando recursos pertencentes um driver de dispositivo. Como Device Manager é um processo privilegiado, drivers, particularmente barramento drivers, dispositivo podem chamar essas funções sem modificação.

See Also

Reference

Device Manager Reference

Other Resources

Enhancing the Security of a Device