DetailPage-MSS-KB

Base de connaissances

Numéro d'article: 264203 - Dernière mise à jour: mercredi 1 novembre 2006 - Version: 2.4

 

Sommaire

Résumé

Les applications Win32 peuvent utiliser SetupDi API pour énumérer tous les périphériques qui sont disponibles dans le système. L'exemple Enumdisk1.exe démontre cette technique en énumérant tous les périphériques de disque indépendamment du type de disque. L'exemple obtient d'un handle vers le périphérique à envoyer des commandes IOCTL pour obtenir les propriétés de carte et périphérique. En outre, il communique avec le périphérique en envoyant une commande pass-through small computer système interface (SCSI) pour obtenir les données de Consultation.

Plus d'informations

Le fichier suivant est disponible au téléchargement à partir du centre de téléchargement Microsoft :
Réduire cette imageAgrandir cette image
Download
Download Enumdisk1.exe now (http://download.microsoft.com/download/win2000ddk/sample/1/nt5/en-us/enumdisk1.exe)
Version date: septembre. 21, 2000

Pour plus d'informations sur la façon de télécharger des fichiers de support technique Microsoft, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
119591  (http://support.microsoft.com/kb/119591/EN-US/ ) Procédure pour obtenir des fichiers de support technique Microsoft auprès des services en ligne
Microsoft a analysé ce fichier pour les virus. Microsoft utilisé les logiciels de détection de virus les plus récentes ne sont associé à la date à laquelle le fichier a été validé. Le fichier est stocké sur des serveurs sécurisés, empêchant toute modification non autorisée du fichier. Le fichier Enumdisk1.exe contient les fichiers suivants :
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)
				

Énumération du périphérique

L'exemple Enumdisk1.exe utilise l'identificateur global unique du GUID_DEVCLASS_DISKDRIVE de classe d'installation (GUID) pour énumérer tous les périphériques de disque qui sont installés dans le système. L'exemple ensuite obtenir l'ID de périphérique en obtenant les propriétés du Registre.

Le handle vers le périphérique est nécessaire pour envoyer des IOCTL à partir d'une application Win32. Il est possible d'obtenir le handle de périphérique en ouvrant le périphérique avec le nom d'interface de périphérique. Le pilote de classe de disque expose cette interface en enregistrant l'interface de périphérique. Il utilise l'interface DiskClassGuid GUID pour l'inscription de périphérique. Une application Win32 pouvez obtenir ce nom de l'interface en utilisant SetupDi API avec l'interface même GUID. En effectuant cela dans une boucle, toutes les interfaces de disque enregistré peuvent être obtenues. Car cette valeur est disponible à partir du pilote de classe de disque, cette technique fonctionne pour tous les types d'unités de disque, telles que Institute for Electrical and Electronics Engineers (IEEE) 1394, USB (Universal Serial Bus), SCSI et IDE (Integrated Device Electronics).

Propriétés du périphérique

IOCTL_STORAGE_QUERY_PROPERTY peut servir à obtenir les propriétés de l'adaptateur et dispositif, respectivement. Cet IOCTL prend la structure de données STORAGE_PROPERTY_QUERY comme argument. Avant d'appeler cet IOCTL, les membres STORAGE_PROPERTY_ID et STORAGE_QUERY_TYPE doivent être définies en conséquence. STORAGE_PROPERTY_ID peut être définie à StorageAdapterProperty ou StorageDeviceProperty et elle détermine la propriété à retourner. Cette structure de données et ses valeurs membres sont définis dans \Ntddk\Src\Ntddstor.h.

Cette StorageAdapterProperty IOCTL l'appel retourne la structure de données STORAGE_ADAPTER_DESCRIPTOR, qui contient des propriétés de carte telles que le groupe type, longueur maximale de transfert, alignement masque et ainsi de suite. StorageDeviceProperty renvoie la structure de données STORAGE_DEVICE_DESCRIPTOR qui contient le type de périphérique, code fournisseur, ID de produit et ainsi de suite. Ces informations sont obtenues à partir du pilote de port respectif. Reportez-vous à la documentation du DDK Windows 2000 pour plus d'informations sur cette IOCTL et des structures de données.

Interface de connexion directe SCSI

Le handle de périphérique obtenu de cette manière permet également d'envoyer des commandes Pass-Through SCSI au périphérique. L'exemple envoie la commande de Consultation sur le périphérique pour obtenir les données de Consultation. Consultez l'exemple SPTI, qui est disponible dans le DDK Windows 2000 pour plus d'informations sur l'interface Pass-Through SCSI.

L'exemple de création

Cliquez sur l'icône Gratuit environnement build ou Checked de l'environnement build sous le groupe de programmes de kits de développement pour définir les variables d'environnement de base qui sont nécessaires à l'utilitaire de génération.

Accédez au dossier qui contient le code source du périphérique, par exemple :
CD c:\enumdisk
Exécutez l'utilitaire de génération en tapant Générer - cz, ou utilisez la macro BLD. Cette méthode appelle Microsoft routines make qui produisent des fichiers journaux nommés Build xxx .log, build xxx .wrn et build xxx .err s'il n'y a des avertissements ou erreurs.

Notez que xxx correspond à «fre» ou «chk» en fonction de l'environnement choisi. Si la génération réussit, le fichier exécutable Enumdisk.exe est placé dans un sous-dossier spécifique à la plate-forme de votre dossier % TargetPath % est spécifié dans le fichier sources.

L'exemple Enumdisk1.exe en cours d'exécution

Cet exemple ne nécessite pas d'arguments. Exécuter l'exemple dans une fenêtre d'invite de commande ; toutes les propriétés de périphérique de disque apparaît.

Références

Kit de développement de pilotes Microsoft Windows 2000

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Win32 Device Driver Kit for Windows 2000
Mots-clés : 
kbmt kbdownload kbfile kbgraphxlinkcritical KB264203 KbMtfr
Traduction automatiqueTraduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 264203  (http://support.microsoft.com/kb/264203/en-us/ )
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Partager
Options de support supplémentaire
Forums du support Microsoft Community
Nous contacter directement
Trouver un partenaire Microsoft Certified Partner
Microsoft Store