Como controle Device Driver carga ordem

Traduções deste artigo Traduções deste artigo
ID do artigo: 115486 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Windows NT foi projetado em torno do conceito que o primeiro driver para um dispositivo obtém propriedade do dispositivo. Esta propriedade pode ser compartilhada ou pode ser exclusivo; isso é backup para o driver de dispositivo claiming. Se o dispositivo exclusivo é solicitado por um driver de dispositivo, qualquer tentativa adicional para o dispositivo por drivers de dispositivo posteriormente carregado falha. Devido a isso, é imperativo que a ordem no qual carregar drivers de dispositivo pode ser modificada por autores de driver de dispositivo. Este artigo descreve os dois métodos que você pode usar para controlar a ordem no qual carregar drivers de dispositivo.

Mais Informações

Há dois métodos que você pode usar para controlar a ordem no qual carregar drivers de dispositivo. Ambos os métodos aproveitam-se de entradas do registro que pode ser encontrado em \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control. O primeiro método é modificar o ServiceGroupOrder. O segundo método é atribuir valores de marca que determinam a ordem de carregamento de acordo com o GroupOrderList driver. Os valores de marca de início tipo e nomes de grupos são em HKLM\SYSTEM\CurrentControlSet\Services\ <drivername> chave que deve ser adicionado antes dos valores podem ser listados na lista de ordem de grupo.

Esses dois métodos funcionam apenas drivers de dispositivo que têm um valor de início de 0 (SERVICE_BOOT_START) ou 1 (SERVICE_SYSTEM_START). Em todos os casos, drivers de dispositivo com um valor de início da carga 0 antes de drivers de dispositivo com um valor inicial de 1 a tentar carregar.

Método 1: ServiceGroupOrder

O ServiceGroupOrder contém uma lista de nomes de grupo na ordem em que elas serão carregadas. Veja o conteúdo e não modificado do ServiceGroupOrder:

Miniporta SCSI
porta
Disco primário
Classe SCSI
Classe de CD-ROM SCSI
filtro
sistema de arquivo de inicialização
Base
Porta de ponteiro
Porta de teclado
Classe de ponteiro
Classe de teclado
Inicialização de vídeo
Vídeo
Salvar vídeo
sistema de arquivos
Log de eventos
Drivers de fluxos
NDIS
TDI
NetBIOSGroup
SpoolerGroup
De acordo com o ServiceGroupOrder, drivers de dispositivo no carregamento de "Classe SCSI" grupo depois que todos os drivers de dispositivo no grupo de "Disco primário" e antes de drivers de dispositivo no carregamento de grupo "classe SCSI CDROM". Quanto maior grupo de um driver de dispositivo está na lista, o mais cedo carrega. A lista ServiceGroupOrder é verificada duas vezes. Primeiro, todos os drivers de dispositivo um valor de início da carga 0; então, todos os drivers de dispositivo com um valor inicial de 1 carga. Assim, um driver de dispositivo com um valor inicial de cargas 0 antes de qualquer driver de dispositivo com um valor inicial de 1, não importa qual sua posição na lista ServiceGroupOrder.

É possível que o autor do driver de dispositivo editar o ServiceGroupOrder. Por isso, um novo grupo pode ser criado em qualquer lugar na lista. Um bom exemplo pode ser um driver de dispositivo de classe SCSI chamado "SAMPLDRV" precise carregar antes "SCSIDISK" porque SCSIDISK é declarar um dispositivo que SAMPLDRV precisa solicitar. Aqui estão as entradas de registro do SCSIDISK:
       \registry\machine\system\currentcontrolset\services\scsidisk
          Type = REG_DWORD 0x00000001
          Start = REG_DWORD 0x00000000
          Group = SCSI class
          ErrorControl = REG_DWORD 0x00000000
          DependOnGroup = REG_MULTI_SZ "SCSI miniport"
				

Um novo grupo pode ser adicionado para ServiceGroupOrder chamado "Carga me primeiro" e SAMPLDRV podem ter seu grupo definida como carga me primeiro. Aqui está o ServiceGroupOrder modificado:

Miniporta SCSI
porta
Disco primário
Carregar me primeiro
Classe SCSI
Classe de CD-ROM SCSI
filtro
sistema de arquivo de inicialização
.
.
.
Aqui estão as entradas de registro do SAMPLDRV:
       \registry\machine\system\currentcontrolset\services\sampldrv
          Type = REG_DWORD 0x00000001
          Start = REG_DWORD 0x00000000
          Group = Load Me First
          ErrorControl = REG_DWORD 0x00000000
          DependOnGroup = REG_MULTI_SZ "SCSI miniport"
				

Com essa configuração, SAMPLDRV carrega antes SCSIDISK.

Método 2: GroupOrderList e valores de marca

Uma chave opcional chamada marca pode ser incluída no registro de um driver de dispositivo. O valor da marca ajuda a determinar a ordem de carregamento dos drivers de dispositivo dentro de um grupo. A ordem de carregamento não é necessariamente em ordem numérica; em vez disso, ele está em ordem definida pelo GroupOrderList. A primeira entrada por grupo na GroupOrderList é o número de valores de marca. Isso é seguido pela seqüência numérica no qual os valores de marca devem ser carregado. Drivers de dispositivo em um grupo primeiro são carregados acordo com seu valor de marca conforme definido pelo GroupOrderList. Se o driver de dispositivo não tem um valor de marca ou se o valor de marca não é o GroupOrderList, esses drivers de dispositivo carregar depois de carregar os drivers de dispositivo com valores de marca válidos. Para esses drivers de dispositivo, a ordem de carregamento não é garantida, diferente daquele que todos os drivers de dispositivo em um grupo de carregar antes de que carrega o próximo grupo.

Aqui está uma saída do GroupOrderList parcial:
      \registry\machine\system\currentcontrolset\control\grouporderlist
          Base = REG_BINARY 0d 00 00 00 01 00...
          Extended base = REG_BINARY 04 00 00 00 01 00...
          Filter = REG_BINARY 05 00 00 00 01 00...
          Keyboard Class = REG_BINARY 01 00 00 00 01 00...
          Keyboard Port = REG_BINARY 01 00 00 00 01 00...
          Ndis = REG_BINARY 09 00 00 00 01 00...
          Pointer Class = REG_BINARY 01 00 00 00 01 00...
          Pointer Port = REG_BINARY 03 00 00 00 01 00...
          .
          .
          .
				

Observação: não é nenhum valor para classe SCSI. Não cada grupo é representado no GroupOrderList. Quando um grupo não é o GroupOrderList, a ordem no qual os drivers de dispositivo carregar dentro do grupo não pode ser garantida.

Como com ServiceGroupOrder, o GroupOrderList pode ser modificado. Usando o mesmo exemplo acima, as entradas de marca para classe SCSI podem ser adicionadas:
      \registry\machine\system\currentcontrolset\control\grouporderlist
          SCSI class = REG_BINARY 02 00 00 00 02 00 00 00 01 00 00 00
          Base = REG_BINARY 0d 00 00 00 01 00...
          Extended base = REG_BINARY 04 00 00 00 01 00...
          .
          .
          .
				

Neste exemplo, a classe de SCSI grupo reconhece dois valores de marca, 00000001 e 00000002. A ordem na qual carregar os valores de marca é 00000002 primeiro, seguido por 00000001. Se SAMPLDRV estiver no grupo de classe SCSI, que é o mesmo SCSIDISK, qualquer valor de marca garante que carrega SAMPLDRV antes SCSIDISK porque SCSIDISK não tem nenhum valor de marca e não marcados drivers carregados pela última vez em um grupo.

Se por algum motivo SCSIDISK for atribuído um valor de marca de 0 x 00000001, SAMPLDRV carrega antes SCSIDISK quando SAMPLDRV é atribuído um valor de marca de 00000002:
       \registry\machine\system\currentcontrolset\services\sampldrv
          Type = REG_DWORD 0x00000001
          Start = REG_DWORD 0x00000000
          Group = SCSI class
          ErrorControl = REG_DWORD 0x00000000
          DependOnGroup = REG_MULTI_SZ "SCSI miniport"
          Tag = REG_DWORD 0x00000002
				

Propriedades

ID do artigo: 115486 - Última revisão: terça-feira, 1 de março de 2005 - Revisão: 3.3
A informação contida neste artigo aplica-se a:
  • Microsoft Win32 Device Driver Kit for Windows NT 3.5
  • Microsoft Win32 Device Driver Kit for Windows NT 3.5
  • Microsoft Win32 Device Driver Kit for Windows NT 3.51
  • Microsoft Win32 Device Driver Kit for Windows NT 4.0
  • Microsoft Win32 Device Driver Kit for Windows 2000
Palavras-chave: 
kbmt kbhowto KB115486 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 115486

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com