Comment faire pour déterminer si un lecteur est un lecteur RAM

Traductions disponibles Traductions disponibles
Numéro d'article: 113418 - Voir les produits auxquels s'applique cet article
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Agrandir tout | Réduire tout

Sommaire

Résumé

Il n'y a pas de fonctions de langage C ou fonctions run-time C pour déterminer si un lecteur est un lecteur RAM. L'API GetDriveType() peut être appelée par les applications Win32 pour obtenir le type d'un lecteur particulier à partir du système d'exploitation. Vous trouverez plus d'informations sur GetDriveType() dans le Guide de référence du Kit de développement logiciel (SDK) Win32 de la documentation en ligne de Visual C++ 32-bit Edition.

Pour les applications MS-DOS ou Win16, bien qu'il n'existe aucune méthode définitive disponibles, plusieurs possibilités existent pour déterminer qu'un lecteur donné est «probablement» un lecteur RAM. Le reste de cet article aborderons brièvement chacune des quatre méthodes pour vérifier un lecteur RAM. Notez que pour toutes les méthodes chaque lecteur du système ordinateur hôte doit être vérifiée.

Plus d'informations

Méthode 1

Vérifiez le nom de volume du lecteur. Cette méthode est sans doute le plus courant. Le Ramdrive.sys Microsoft utilise un nom de volume de «MS-RAMDRIVE». Toutefois, cela n'est pas garanti pour être le nom de volume et sera probablement pas le nom de volume sur lecteurs de mémoire vive (RAM) à partir d'autres sociétés. Un utilisateur peut également modifier cette valeur en utilisant la commande étiquette.

Méthode 2

Appeler Interrupt 21 h fonction h 44 sous-fonction 0Dh, qui est une fonction de contrôle d'e/S générique pour les périphériques de bloc. La plupart des périphériques prennent en charge cette fonction. Toutefois, Ramdrive.sys actuellement ne le prend pas en charge. Ce manque de prise en charge peut être utilisé pour identifier un lecteur RAM. Charger le registre CX avec 0860h pour obtenir les paramètres du périphérique lecteur de disque ; si la fonction échoue, en laissant l'indicateur carry est défini, le lecteur est probablement un lecteur RAM.

Méthode 3

Vérifier nombre de tables FAT le lecteur a; si elle dispose uniquement de 1, il s'agit probablement d'un lecteur RAM. Dans la mesure où Ramdrive.sys ne prend pas en charge le IOCTL fonctions, la seule façon de déterminer le nombre de tables FAT consiste à utiliser INT 25, Absolute disque lecture. Notez les avertissements que cette fonction a été remplacée et n'est pas prise en charge sous Windows. Pour plus d'informations et un exemple montrant comment utiliser INT 25, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
102870Lire le secteur de démarrage d'un lecteur

Méthode 4

Enfin, appel d'interruption 21 h fonction h 44 subfunction 09 h pour vérifier si le lecteur est distant. Si la valeur renvoyée dans DX est 0 x 0800, ayant uniquement bit 11 ensemble, le lecteur est probablement un lecteur RAM. Ceci est connu pour être un lecteur RAM par déduction. Bits 6 et 7 étant clairs, il est connu que ce périphérique n'accepte pas les fonctions IOCTL, comme la plupart des périphériques. Dans la mesure où les bits 12 est désactivée, il s'agit pas un lecteur réseau et ainsi de suite.

Dans la mesure où aucune des méthodes ci-dessus est garantie, il est préférable d'utiliser une combinaison de ces méthodes. Vous devez d'abord éliminer l'évidente, comme les lecteurs réseau, disques durs locaux, lecteurs de CD-ROM et ainsi de suite. Essayez ensuite de déterminer si le lecteur donné est un lecteur RAM.

Propriétés

Numéro d'article: 113418 - Dernière mise à jour: jeudi 27 février 2014 - Version: 4.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual C++ 1.0 Édition Professionnelle
  • Microsoft Visual C++ 1.5 Édition Professionnelle
  • Microsoft Visual C++ 2.0 Édition Professionnelle
  • Microsoft Visual C++ 2.1
  • Microsoft Visual C++ 4.0 Édition Standard
  • Microsoft Visual C++ 5.0 Édition Entreprise
  • Microsoft Visual C++ 6.0 Édition Entreprise
  • Microsoft Visual C++ 5.0 Édition Professionnelle
  • Microsoft Visual C++ 6.0 Édition Professionnelle
  • Microsoft Visual C++, 32-bit Learning Edition 6.0
  • Microsoft Visual C++ .NET 2002 Initiation
  • Microsoft Visual C++ .NET 2003 Initiation
Mots-clés : 
kbnosurvey kbarchive kbmt kbhowtomaster kblangc KB113418 KbMtfr
Traduction 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: 113418
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.

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