Enumdisk1.exe: Ejemplo de Enumdisk para enumerar los dispositivos de disco

Seleccione idioma Seleccione idioma
Id. de artículo: 264203 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Las aplicaciones de Win32 pueden utilizar SetupDi API para enumerar todos los dispositivos que están disponibles en el sistema. Enumdisk1.exe ilustra esta técnica enumerando todos los dispositivos de disco independientemente del tipo de disco. En el ejemplo también se obtiene un identificador para el dispositivo para enviar comandos IOCTL para obtener las propiedades de adaptador y dispositivo. Además, esto se comunica con el dispositivo enviando un comando paso a través de equipos pequeños sistema SCSI para obtener los datos de consulta .

Más información

El archivo siguiente está disponible para descargarlo del Centro de descarga de Microsoft:
Contraer esta imagenAmpliar esta imagen
Download
Download Enumdisk1.exe now
Fecha de aparición: septiembre. 21, 2000

Para obtener información adicional acerca de cómo descargar los archivos de soporte técnico de Microsoft, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
119591Cómo obtener Archivos de soporte técnico de Microsoft desde los servicios en línea
Microsoft exploró este archivo en busca de virus. con el software de detección de virus más reciente disponible en la fecha de publicación. Asimismo, el archivo se almacenó en servidores seguros que ayudan a impedir la realización de cambios no autorizados. El archivo Enumdisk1.exe contiene los archivos siguientes:
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)
				

Dispositivo (enumeración)

El ejemplo de Enumdisk1.exe utiliza el identificador único global de configuración de clase GUID_DEVCLASS_DISKDRIVE (GUID) para enumerar todos los dispositivos de disco que están instalados en el sistema. En el ejemplo a continuación, se obtiene el identificador de dispositivo obteniendo las propiedades de registro.

El controlador para el dispositivo es necesario para enviar IOCTL desde una aplicación de Win32. El identificador de dispositivo puede obtenerse abriendo el dispositivo con el nombre de interfaz de dispositivo. El controlador de clase de disco expone esta interfaz registrando la interfaz de dispositivo. Utiliza la interfaz DiskClassGuid GUID para el registro de dispositivo. Una aplicación Win32 puede obtener este nombre de interfaz utilizando SetupDi API con la misma interfaz GUID. Al realizar esto en un bucle, se pueden obtener todas las interfaces registradas del disco. Porque este valor se obtiene del controlador de clase de disco, esta técnica funciona para todos los tipos de dispositivos de disco, como SCSI, electrónicas de dispositivos integradas (IDE), bus serie universal (USB) e Instituto Institute for Electrical and Electronics Engineers (IEEE) 1394.

Propiedades de dispositivo

IOCTL_STORAGE_QUERY_PROPERTY puede utilizarse para obtener las propiedades del adaptador y el dispositivo, respectivamente. Este IOCTL toma la estructura de datos STORAGE_PROPERTY_QUERY como argumento. Antes de llamar a este IOCTL, los miembros STORAGE_PROPERTY_ID y STORAGE_QUERY_TYPE deben establecerse en consecuencia. Se puede establecer la STORAGE_PROPERTY_ID en o StorageAdapterProperty StorageDeviceProperty y determina la propiedad que se va a devolver. Esta estructura de datos y sus valores miembro se definen en \Ntddk\Src\Ntddstor.h.

Al llamar a este StorageAdapterProperty IOCTL devuelve la estructura de datos STORAGE_ADAPTER_DESCRIPTOR , que contiene propiedades como el bus adaptador tipo, longitud máxima de transferencia, máscara de alineación y así sucesivamente. StorageDeviceProperty devuelve la estructura de datos STORAGE_DEVICE_DESCRIPTOR , que contiene el tipo de dispositivo, proveedor, ID. de producto y así sucesivamente. Esta información se obtiene del controlador de puerto correspondiente. Consulte la documentación del DDK de Windows 2000 para obtener más información sobre este IOCTL y estructuras de datos.

Interfaz de paso a través SCSI

El identificador de dispositivo obtenido de esta manera también puede utilizarse para enviar comandos paso a través SCSI al dispositivo. El ejemplo envía el comando de consulta al dispositivo para obtener los datos de consulta . Consulte el ejemplo de SPTI disponible en el DDK de Windows 2000, para obtener más información sobre la interfaz de paso a través SCSI.

Generar el ejemplo

Haga clic en el icono Free Build Environment o Checked Build Environment en el grupo de programa de Kits de desarrollo para establecer las variables de entorno básicas que son necesarios para la utilidad de generación.

Cambie a la carpeta que contiene el código fuente de dispositivo, por ejemplo:
CD c:\enumdisk
Ejecutar la utilidad de generación escribiendo generación - cz , o utilizar la macro BLD . Este método invoca la rutinas Asegúrese de que generan archivos de registro denominados generación xxx . log, generar xxx .wrn y generación xxx .Err si hay advertencias o errores de Microsoft.

Tenga en cuenta que xxx representa "fre" o "chk" según el entorno elegido. Si la generación finaliza correctamente, el archivo ejecutable de Enumdisk.exe se coloca en una subcarpeta específica de la plataforma de la carpeta % TargetPath % especificado en el archivo de fuentes.

Ejecutar el ejemplo Enumdisk1.exe

En este ejemplo no requiere argumentos. Ejecutar el ejemplo desde una ventana de símbolo; se se muestran todas las propiedades de dispositivo de disco.

Referencias

Kit de desarrollo de controladores de Microsoft Windows 2000

Propiedades

Id. de artículo: 264203 - Última revisión: miércoles, 01 de noviembre de 2006 - Versión: 2.4
La información de este artículo se refiere a:
  • Microsoft Win32 Device Driver Kit for Windows 2000
Palabras clave: 
kbmt kbdownload kbfile kbgraphxlinkcritical KB264203 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 264203

Enviar comentarios

 

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