Como enumerar as unidades de CD e obtenha suas propriedades/recursos

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: 305184
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sumário
Aplicativos Win32 podem usar SetupDi xxx APIs para enumerar todos os dispositivos que estão disponíveis em um computador.

A amostra de EnumCD fornecida por meio deste artigo faz o seguinte:
  • Demonstra SetupDi xxx enumerando todas as unidades CD independentemente do tipo de barramento.
  • Obtém um identificador para o dispositivo para enviar comandos IOCTL para obter as propriedades do adaptador e dispositivo.
  • Usa comandos de passagem SCSI para obter os dados de consulta e os recursos de unidade.
Observação Você pode obter recursos de unidade apenas para unidades que oferecem suporte a comandos de multimídia SCSI-3 (MMC).
Mais Informações
O seguinte arquivo está disponível para download no Centro de download da Microsoft:
Data de lançamento: 08-out-2002

Para obter mais informações sobre como baixar arquivos de suporte da Microsoft, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
119591Como obter arquivos de suporte da Microsoft de serviços on-line
Microsoft examinou esse arquivo em busca de vírus. Microsoft utilizou o mais recente software de detecção de vírus que estava disponível na data em que o arquivo foi publicado. O arquivo é armazenado em servidores com segurança avançada que ajudam a evitar qualquer alteração não autorizada no arquivo. O arquivo EnumCD.exe contém os seguintes arquivos.
Nome de arquivoDescrição
EnumCD.cimplementa o aplicativo Win32 para enumerar as unidades de CD
EnumCD.harquivo de cabeçalho para EnumCD.c
EnumCD.htmdocumentação para esses exemplos (esse arquivo)
EnumCD.exePrograma executável do Windows 2000 (compilação livre)
FontesInstruções de compilação do DDK

Enumeração de dispositivos

O exemplo EnumCD usa o dispositivo de classe de instalação GUID_DEVCLASS_CDROM GUID (identificador globalmente exclusivo) para enumerar todas as unidades CD estão instaladas no computador. O exemplo, em seguida, obtém a identificação do dispositivo fazendo com que as propriedades do Registro.

Para enviar os IOCTLs de um aplicativo Win32, você deve ter o identificador do dispositivo. Para obter o identificador do dispositivo, use o nome de interface de dispositivo para abrir o dispositivo. O Driver de classe de CD-ROM expõe essa interface Registrando a interface de dispositivo. Ele usa o GUID da interface CdRomClassGuid para registro do dispositivo.

Um Win32 aplicativo pode obter todas as interfaces registradas do CD-ROM usando as APIs SetupDi xxx com a mesma interface GUID em um loop. Porque o registro de interface é feito pelo driver de classe de CD-ROM, essa técnica funciona para todos os tipos de unidades de CD, como SCSI, IDE, USB e 1394.

Propriedades do dispositivo

Você pode usar IOCTL_STORAGE_QUERY_PROPERTY para obter as propriedades do adaptador e dispositivo. Este IOCTL tem a estrutura de dados STORAGE_PROPERTY_QUERY como um argumento. No entanto, antes de chamar IOCTL_STORAGE_QUERY_PROPERTY, você deve definir os membros STORAGE_PROPERTY_ID e STORAGE_QUERY_TYPE corretamente.

O STORAGE_PROPERTY_ID determina a propriedade a ser retornado. Defini-la como StorageAdapterProperty ou StorageDeviceProperty :
  • StorageAdapterProperty retorna a estrutura de dados STORAGE_ADAPTER_DESCRIPTOR, que contém propriedades do adaptador, como o tipo de barramento, comprimento máximo de transferência, máscara de alinhamento e outras pessoas.
  • StorageDeviceProperty retorna o STORAGE_DEVICE_DESCRIPTOR estrutura de dados, que contém o tipo de dispositivo, ID do fornecedor, identificação do produto (Product ID) e outros. Essas informações são obtidas dos drivers de porta respectivos.
Para obter mais informações sobre estruturas de IOCTL e dados, visite o seguinte site:
Windows Driver Development Kit: Visão geral
http://www.microsoft.com/whdc/devtools/ddk/default.mspx/
IOCTL_STORAGE_GET_MEDIA_TYPES_EX é usado para obter informações sobre tipos de mídia oferece suporte para uma unidade de CD (se ele é uma unidade de CD-ROM ou DVD). Ele não informar se é um leitor/gravador ou os tipos de discos ele oferece suporte. No entanto, você pode obter essas informações na página detecção de modo.

Interface de passagem SCSI

O identificador de dispositivo obtido também é usado para enviar comandos de passagem SCSI para o dispositivo. O exemplo envia o comando pesquisa ao dispositivo para obter os dados de consulta.

O exemplo também envia um comando Mode Sense para ler a página de parâmetro "Recursos de CD e status mecânico" do dispositivo. Esta página contém (entre outras coisas) informações sobre os recursos da unidade de CD, incluindo se ele é uma unidade de CD ou DVD, se ele oferece suporte a leitura ou gravação e a mídia tipos que ele oferece suporte (por exemplo, CD-R/RW ou DVD-ROM/R/RAM). Como mencionado anteriormente, esta página de parâmetro é definida apenas na especificação do MMC de SCSI-3. Dispositivos que não oferecem suporte a essa especificação retornará um erro.

Para obter mais informações sobre a interface de passagem SCSI, consulte o exemplo SPTI, que está disponível no Windows 2000 DDK.

O exemplo de criação

  1. Em grupo de programas Development Kits, clique no ícone Ambiente de compilação livre ou no ícone Ambiente de compilação verificada para definir as variáveis de ambiente básicas que são necessárias pelo utilitário de compilação.
  2. Altere para a pasta que contém o código de origem do dispositivo, por exemplo:
    CD c:\EnumCD
  3. Execute o utilitário de compilação: digite criar - ceZ , ou use a macro BLD.

    Esse método invoca as rotinas de criar Microsoft que produzem arquivos de log chamados da seguinte maneira (onde xxx é "fre" ou "chk", dependendo do ambiente escolhido) se houver quaisquer avisos ou erros:
    • Criar xxx .log
    • Criar .ERR xxx
    • Criar .wrn xxx
    Observação Se a compilação tiver êxito, o arquivo EnumCD.exe executável é colocado em uma subpasta específica da plataforma do seu TargetPath pasta especificada no arquivo de fontes.

Execução do exemplo EnumCD.exe

Este exemplo não requer argumentos. Execute o exemplo a partir de um prompt de comando. Propriedades de todas as unidades de CD serão listadas.
EnumCD enumcdexe

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 305184 - Última Revisão: 12/06/2015 04:36:21 - Revisão: 3.1

Microsoft Win32 Device Driver Kit for Windows 2000, Microsoft Windows XP Driver Development Kit, Microsoft Windows Server 2003 Driver Development Kit (DDK)

  • kbnosurvey kbarchive kbmt kbfile kbhowto kbstoragedev KB305184 KbMtpt
Comentários