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

Windows Discussion :

[Technologie Windows] Recherche API pour accès bas niveau aux fichiers


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 15
    Par défaut [Technologie Windows] Recherche API pour accès bas niveau aux fichiers
    Bonjour,

    Je travaille actuellement avec un ami sur un projet de comparaison de fichier, dans lequel nous avons besoin d'avoir un accès bas niveau aux fichiers. J'entend par accès bas niveau d'avoir accès, par exemple, aux différents clusters (blocs) d'un fichier, quelque soit le système de fichier, afin de pouvoir en récupérer quelques informations utiles à notre comparaison.

    Malheureusement, ni mon ami ni moi n'avons de connaissances dans le domaine de l'accès bas niveau aux fichiers sous Windows. Nous savons comment fonctionne FAT et NTFS (les 2 systèmes de fichiers visés par notre projet), mais nous ne savons pas comment les attaquer depuis une appli Windows (codé en VC++ ou C# par exemple). Nous avons effectué quelques recherches sur internet, mais nous n'avons rien trouvé de concluent.

    Existe-t-il d'après vous des API qui permette de lire un fichier clusters après clusters par exemple ? (ça nous aiderais bien ) [Pour Windows si possible étant donné qu'il s'agit de l'OS ciblé pour notre projet]

    Si de telles API n'existe pas, possédez-vous des connaissances ou des idées dans le domaine, qui pourrait nous servir de fil conducteur et ainsi nous servir à créer une API de ce genre ?

    Je reste disposition si vous avez des questions ou des remarques éventuelles vis-à-vis de ce que je viens d'écrire.

    Merci de votre aide. Bonne journée.

    Cordialement,
    --
    XR

  2. #2
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Heu... A part comparer les systèmes de fichier eux-mêmes, en quoi un accès bas niveau au filesystem serait-il d'une quelconque utilité ?? Et même dans le cadre d'une comparaison des filesystem, ça resterait probablement inutile...

    Il faudrait pour ça "décoder" à la main les données du filesystem, chose que l'OS fera bien mieux (et plus vite !) que toi à la main... Ne serait-ce qu'à cause des changements de contexte entre l'espace utilisateur et l'espace kernel !!

    Si tu as besoin d'informations bas niveau sur un disque, tu peux aller voir sur cette page. Mais tenter de lire "à la main" une partition NTFS est un casse-gueule de première par contre, il vaut mieux que tu sois prévenu.


    Peux-tu mieux expliciter ton besoin initial, et pour quelle raison tu penses avoir besoin d'un tel accès ?
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  3. #3
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Heu... A part comparer les systèmes de fichier eux-mêmes, en quoi un accès bas niveau au filesystem serait-il d'une quelconque utilité ?? Et même dans le cadre d'une comparaison des filesystem, ça resterait probablement inutile...
    Ca peut toujours servir à implémenter un défragmenteur, lire une partie d'un fichier endommagé, supprimer un fichier qui ne peut pas être supprimé depuis le shell (bug de Windows, je ne sais pas si ça t'es déjà arrivé mais ça m'arrive assez souvent, et pas qu'à moi ...), accéder pour une quelconque raison au secteur de boot, etc.

    Pour accéder à un disque, il suffit de créer un handle vers le disque à lire ou à écrire. Voir pour ça la doc de CreateFile. Utiliser ensuite SetFilePointer pour naviguer dans le disque et ReadFile et WriteFile pour les E/S.

    Pour les informations générales concernant le disque (comme quelle est la taille d'un secteur, etc.), utiliser les control codes. Cf le lien de Mac LAK.

  4. #4
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Citation Envoyé par Melem Voir le message
    Ca peut toujours servir à implémenter un défragmenteur, lire une partie d'un fichier endommagé, supprimer un fichier qui ne peut pas être supprimé depuis le shell (bug de Windows, je ne sais pas si ça t'es déjà arrivé mais ça m'arrive assez souvent, et pas qu'à moi ...), accéder pour une quelconque raison au secteur de boot, etc.
    Certes, mais quel rapport avec la comparaison de fichiers ?
    Défragmenteur ? OK, sauf qu'il en existe déjà des tonnes, les Windows récents (2000 et plus) défragmentent en tâche de fond de toutes façons...
    Secteur de boot ? C'est mille fois plus simple de le faire via les accès BIOS, sans charger l'OS, et c'est souvent par là qu'il faut en passer de toutes façons, vu que seule la BIOS est utilisable au démarrage (si l'on veut son propre LILO par exemple).

    Non, vraiment, surtout pour une comparaison de fichiers entre deux filesystems, je n'arrive pas à comprendre l'intérêt d'un accès bas niveau...
    Comparer les données internes ? Les fonctions de haut niveau sont plus rapides et pratiques (fonctions CLib / STL par exemple).
    Comparer les performances de chargement ? On fait alors des accès simplifiés (API Win32 "direct"), mais toujours pas besoin d'accès aussi bas niveau.

    (P.S. : pour le bug de suppression, ce n'en est souvent pas un... C'est le plus souvent un handle mal fermé, Process Explorer et un autre outil en ligne de commande des SysInternals devrait pouvoir t'aider)
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  5. #5
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Certes, mais quel rapport avec la comparaison de fichiers ?
    Ah, j'ai pas tout lu en effet ...

    Défragmenteur ? OK, sauf qu'il en existe déjà des tonnes, les Windows récents (2000 et plus) défragmentent en tâche de fond de toutes façons ...
    Et qui est-ce qui dit que l'algo utilisé est optimal ?

    Secteur de boot ? C'est mille fois plus simple de le faire via les accès BIOS, sans charger l'OS, et c'est souvent par là qu'il faut en passer de toutes façons, vu que seule la BIOS est utilisable au démarrage (si l'on veut son propre LILO par exemple).
    Ah non, vraiment tout sauf le BIOS. Ici je ne parle pas de coder un programme de boot (auquel cas il faut faire quelques échanges avec le BIOS ...) mais d'accéder au MBR sous Windows, pour y placer un programme amorçable par exemple ou, comme je l'ai dit, pour une quelconque autre raison.
    P.S. : pour le bug de suppression, ce n'en est souvent pas un... C'est le plus souvent un handle mal fermé, Process Explorer et un autre outil en ligne de commande des SysInternals devrait pouvoir t'aider
    Non non, je parle vraiment d'un bug que tu n'as peut-être pas encore rencontré. Tu peux redémarrer ton PC 1000, en mode sans échec, en mode je ne sais plus, mais impossible de supprimer le fichier. J'ai constaté qu'il s'agit souvent de fichiers qui n'ont pas pu être copiés (mais qui ont déjà eu des entrées (éventuellement incomplètes ...) dans table d'allocation !) ou des fichiers créés depuis Linux (je ne me rappelle plus quelle distribution j'utilisais à l'époque).

    Ceci étant, je ne trouve pas en effet la nécessité d'avoir un accès bas niveau au disque pour faire une comparaison de fichiers.

  6. #6
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Citation Envoyé par Melem Voir le message
    ou des fichiers créés depuis Linux (je ne me rappelle plus quelle distribution j'utilisais à l'époque).
    ça je confirme, ça m'est encore arrivé récemment avec un encodage à la con que Windows n'arrivait pas à gérer. Même Dos refusait de le supprimer.

  7. #7
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Citation Envoyé par Melem Voir le message
    Non non, je parle vraiment d'un bug que tu n'as peut-être pas encore rencontré. Tu peux redémarrer ton PC 1000, en mode sans échec, en mode je ne sais plus, mais impossible de supprimer le fichier. J'ai constaté qu'il s'agit souvent de fichiers qui n'ont pas pu être copiés (mais qui ont déjà eu des entrées (éventuellement incomplètes ...) dans table d'allocation !) ou des fichiers créés depuis Linux (je ne me rappelle plus quelle distribution j'utilisais à l'époque).
    Jamais eu : faut dire aussi que je n'ai pas de Linux (en dehors d'une VM utilisée tous les 36 du mois), et même si j'en avais un, je ne jouerais pas à monter mes partitions NTFS avec...
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

Discussions similaires

  1. Architecture Web API pour accès en base de données
    Par ahmed_automation dans le forum Flex
    Réponses: 7
    Dernier message: 09/04/2010, 09h51
  2. Recherche API pour lecture de packet MPEG2-TS
    Par Djobird dans le forum Multimédia
    Réponses: 0
    Dernier message: 23/04/2009, 11h34
  3. Recherche API pour faire des interfaces ASCII (Style DOS ou Linux)
    Par sekiryou dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 18/08/2006, 00h37
  4. [JDBC] Recherche API pour création dyn. de table
    Par Oui-Oui MB dans le forum JDBC
    Réponses: 3
    Dernier message: 04/10/2005, 13h35
  5. Réponses: 8
    Dernier message: 05/10/2004, 00h02

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