Enumdisk1.exe: Exemplo de Enumdisk para enumerar dispositivos de disco

Traduções de Artigos Traduções de Artigos
Artigo: 264203 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

As aplicações do Win32 podem utilizar SetupDi APIs para enumerar todos os dispositivos que estão disponíveis no sistema. O exemplo Enumdisk1.exe demonstra esta técnica através da enumeração todos os dispositivos de disco independentemente do tipo de disco. O exemplo também obtém um identificador para o dispositivo para enviar comandos IOCTL para obter as propriedades do adaptador e dispositivo. Além disso, este comunica com o dispositivo enviando um small computer interface (SCSI) pass-through comando de sistema para obter os dados de consulta .

Mais Informação

O ficheiro seguinte está disponível para transferência a partir do Centro de transferências da Microsoft:
Reduzir esta imagemExpandir esta imagem
Download
Download Enumdisk1.exe now
Data de edição: Setembro. 21, 2000

Para obter informações adicionais sobre como transferir ficheiros de suporte da Microsoft, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
119591Como obter ficheiros de suporte da Microsoft a partir de serviços on-line
Microsoft procedeu de vírus neste ficheiro. Microsoft utilizou o mais recente software de detecção de vírus que estava disponível na data em que o ficheiro foi publicado. O ficheiro é alojado em servidores com segurança avançada que o ajudam a impedir alterações não autorizadas ao ficheiro. O ficheiro Enumdisk1.exe contém os seguintes ficheiros:
File           Description
--------------------------

Enumdisk.c     Implements the Win32 application to enumerate the disk devices.
Enumdisk.h     Header file for Enumdisk.c
Sources        DDK build instructions
Enumdisk.htm   The documentation for these samples (this file)
Enumdisk.exe   Windows 2000 executable program (Free build)
				

Enumeração de dispositivo

O exemplo Enumdisk1.exe utiliza o programa de configuração classe GUID_DEVCLASS_DISKDRIVE identificador exclusivo global (GUID) para enumerar todos os dispositivos disco instalados no sistema. O exemplo, em seguida, obtém o ID do dispositivo por obter as propriedades de registo.

A alça para o dispositivo é necessário para enviar IOCTLs a partir de uma aplicação Win32. É possível obter o identificador do dispositivo, abrindo o dispositivo com o nome da interface de dispositivo. O controlador de classe disco expõe esta interface ao registar a interface de dispositivos. Utiliza o GUID da interface DiskClassGuid para registo de dispositivo. Uma aplicação de Win32 pode obter este nome de interface utilizando SetupDi APIs com o mesmo GUID da interface. Efectuando este num ciclo, é possível obter todas as interfaces disco registado. Uma vez que este valor é obtido o controlador de classe de disco, esta técnica funciona para todos os tipos de dispositivos de disco, tais como SCSI, IDE (Integrated Device Electronics), USB (Universal Serial Bus) e Institute para Electrical and Electronics Engineers (IEEE) 1394.

Propriedades do dispositivo

IOCTL_STORAGE_QUERY_PROPERTY pode ser utilizado para obter as propriedades da placa e o dispositivo, respectivamente. Este IOCTL demora a estrutura de dados STORAGE_PROPERTY_QUERY como um argumento. Antes de chamar este IOCTL, os membros STORAGE_PROPERTY_ID e STORAGE_QUERY_TYPE devem ser definidos em conformidade. STORAGE_PROPERTY_ID pode ser definida para StorageAdapterProperty ou StorageDeviceProperty e determina a propriedade deve ser devolvido. Esta estrutura de dados e respectivos valores de membro são definidos no \Ntddk\Src\Ntddstor.h.

Chamar este StorageAdapterProperty IOCTL devolve a estrutura de dados STORAGE_ADAPTER_DESCRIPTOR , que contém propriedades de placa, tais como o bus tipo, tamanho de transferência máximo, máscara de alinhamento e assim sucessivamente. StorageDeviceProperty devolve a estrutura de dados STORAGE_DEVICE_DESCRIPTOR , que contém o tipo de dispositivo, ID do fabricante, ID do produto e assim sucessivamente. Esta informação é obtida do controlador respectiva porta. Consulte a documentação da DDK do Windows 2000 para obter mais informações sobre este estruturas IOCTL e dados.

Interface de pass-through SCSI

O identificador de dispositivo obtido desta forma pode também ser utilizado para enviar comandos pass-through SCSI para o dispositivo. O exemplo envia os comandos de consulta para o dispositivo para obter os dados de consulta . Consulte o exemplo SPTI, que está disponível no Windows 2000 DDK, para mais informações sobre a interface de pass-through SCSI.

Criar o exemplo

Clique no ícone Ambiente criar livre ou Verificação ambiente criar em grupo de programas Development Kits para definir as variáveis de ambiente básicas que são necessárias pelo utilitário de compilação.

Mude para a pasta que contém o código de origem do dispositivo, por exemplo:
CD c:\enumdisk
Execute o utilitário de compilação escrevendo criar - cz ou utilizar a macro BLD . Este método invoca a Microsoft rotinas Certifique que produzem ficheiros de registo denominados criar xxx . log, compilação xxx .wrn e criar xxx .err se existirem quaisquer avisos ou erros.

Tenha em atenção que xxx representa "fre" ou "chk", dependendo do ambiente escolhido. Se a compilação tiver êxito, o ficheiro Enumdisk.exe executável é colocado numa subpasta específico da plataforma do seu % TargetPath % pasta especificada no ficheiro de origem.

Executar o exemplo Enumdisk1.exe

Este exemplo não requer quaisquer argumentos. Executar o exemplo a partir de uma janela linha de comandos; todas as propriedades do dispositivo de disco serão listadas.

Referências

Microsoft Windows 2000 Driver Development Kit

Propriedades

Artigo: 264203 - Última revisão: 1 de novembro de 2006 - Revisão: 2.4
A informação contida neste artigo aplica-se a:
  • Microsoft Win32 Device Driver Kit para Windows 2000
Palavras-chave: 
kbmt kbdownload kbfile kbgraphxlinkcritical KB264203 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 264203

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