IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Choisir l'emplacement d'écriture sur HDD


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Par défaut Choisir l'emplacement d'écriture sur HDD
    Bonsoir,

    Je souhaite faire un programme qui puisse écrire sur le disque dur (en fait une clé usb, mais je suppose que ça reviendra au même du point de vue de windows) à un emplacement spécifique.

    Je veux par exemple pouvoir écrire sur tel secteur du disque.

    Ne trouvant pas d'indication sur la manière d'opérer, je me tourne vers vous.
    Merci pour les conseils que vous pourrez me donner.

    Xtatic.

  2. #2
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 527
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 527
    Par défaut
    Citation Envoyé par Xtatic Voir le message
    Je veux par exemple pouvoir écrire sur tel secteur du disque.

    Xtatic.
    A ma connaissance c'est impossible c'est l'OS qui gère cela et cela revient à court-circuiter les services de l'OS.
    En assembleur et sous ms-dos c'était possible avec les interruptions du BIOS ( int 10h)
    Mais avec les OS de maintenant c'est impossible...
    Et puis un fichier sur disque n'est jamais figé dans des secteurs particuliers l'OS peut le déplacer...

  3. #3
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 527
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 527
    Par défaut
    A la rigueur essayer avec DeviceIoControl et IOCTL_DISK_SET_PARTITION_INFO_EX comme paramètre
    Je conseille la plus grande prudence en appelant ce genre de fonction.
    Essayer sur un système,PC destiné à faire des tests.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Par défaut
    Merci,

    Je vais voir ce que je peux faire avec cette fonction. Etant donné que mon but est de bosser sur une clé usb, je ne prends pas trop de risque.

    Je tiens au courant demain si j'ai pu obtenir ce que je voulais (ou si j'ai ruiné ma machine )

    Xtatic.

  5. #5
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 527
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 527
    Par défaut
    Hello Xtatic,
    oui ce serait intéressant de savoir comment tu as procédé.
    Mais encore une fois je recommende de travailler sur une machine qui n'a pas de données importantes ou sur un vieux PC par exemple on ne sait jamais avec des fonctions bas-niveau tu peux endommager ta machine

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 24
    Par défaut
    Bonsoir,

    He bien finalement, je n'ai pas trouvé mon bonheur. Parmi tous les controles fonctionnant avec DeviceIoControl, je n'ai pas trouvé de moyen d'écrire un truc particulier à un endroit précis.

    Mais par contre, il y a visiblement moyen de formater un disque (créer une partition). Comme c'est aussi un problème que je souhaitais aborder pour ma clé usb, je me suis penché sur le cas de IOCTL_SET_PARTITION_INFO_EX, de IOCTL_DISK_CREATE_DISK ainsi qu'un dernier dont le nom m'échappe (quelque_chose_layout).

    Malheureusement, avec les fonctions en GET, je parviens à récupérer des infos sur la partition, ou les caractéristiques du volume (nombre de pistes, de cylindres, de secteurs, et d'octet par secteurs), mais pas moyen d'utiliser les fonctions en SET pour créer une partition. Le code erreur renvoyé par GetLastError est 5, ce qui correspond au message "access denied".

    Ceci dit, pour écrire les partitions avec IOCTL_SET_PARTITION_INFO_EX, il faut remplir des structures un peu complexes en renseignant des champs permettant de caractériser une partition MBR ou GTP... DU coup j'ai essayé avec IOCTL_SET_PARTITION_INFO, version antérieur mais plus simple, mais ça n'a rien donné non plus..

    Bref, je nage

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème écriture sur un fichier
    Par drinkmilk dans le forum MFC
    Réponses: 4
    Dernier message: 24/06/2007, 00h08
  2. Lecture / écriture sur un port com
    Par dorian833 dans le forum C++
    Réponses: 7
    Dernier message: 07/07/2005, 15h20
  3. [MFC] Notification d'écriture sur le disque
    Par Yellowmat dans le forum MFC
    Réponses: 1
    Dernier message: 28/06/2005, 12h00
  4. PB d'écriture sur MSSQLServer à partir d'un service
    Par Dunsany dans le forum Bases de données
    Réponses: 31
    Dernier message: 21/08/2004, 15h25
  5. droits en écriture sur le réseau
    Par julien20vt dans le forum MFC
    Réponses: 4
    Dernier message: 25/03/2004, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo