Acces direct disques et partitions VB net

Soyez le premier à donner votre avis sur cette source.

Vue 4 421 fois - Téléchargée 5 327 fois


Description

Exploration des lecteurs physiques et des partitions logiques sous Windows .
Projet fait avec Visual Studio Community 2017 .
Les projets similaires en VB Net codés par Cs_Galain et Codeagogo ( mes anciens pseudos avant le basculement chez CCM) ne sont point à jour et comportent des erreurs . Ils ne doivent plus être utilisés . Il en est de même pour les projets similaires VB 6 .
Aucune écriture directe n'est faite sur les disques physiques ou partitions logiques .

Exploration des systèmes de fichiers FAT , exFAT et NTFS !
Exploration des lecteurs physiques et logiques de votre machine !
Les systèmes FAT, FAT32, exFAT et NTFS sont vus en profondeur ( FAT = FAT 16 bits)
Gestion des partitions MBR et GPT ( merci à Wikipedia pour les partitions GPT en passant )
Une connaissance de l'architecture des systèmes de fichiers est recommandée ( surtout en NTFS). Les 3 fichiers .pdf joints m'ont servi de base pour la compréhension de l'architecture des systèmes de fichiers FAT, exFAT et NTFS
La nouvelle version ne comporte plus de modules : on utilise des classes
Rajout d'un contrôle utilisateur en dll dans le projet : ceci permet avec une nouvelle Scrollbar verticale d'explorer les disques et partitions secteur après secteur avec cette même scrollbar .
La valeur maximale de cette scrollbar est de type Decimal ( ce type prend en charge jusqu'à 29 chiffres significatifs et peut représenter des valeurs supérieures à 7.9228 x 10^28 selon MSDN ). Une conversion en interne ramène la valeur de cette Scrollbar en un type INT64 : donc plus aucun souci pour les très gros disques durs .
En interne les secteurs sont définis par une valeur de type INT64 ( la valeur maximale pour un numéro de secteur serait donc 9 223 372 036 854 775 807 (9 2...E+18) divisée par le nombre d'octets par secteurs ce qui laisse de la marge : on arrive à un peu plus de (18 x 10E+15) secteurs avec des secteurs de 512 octets) .
Par contre les clusters sont définis par des valeurs INT32 soit 2 147 483 647 comme valeur maximale . En supposant des clusters de 8 secteurs de 512 octets cela conduit tout de même à des fichiers ou des partitions de 8 796 093 018 112 octets ( soit près de 8 TeraOctets) . Ce qui est largement suffisant actuellement .
De plus cette scrollbar a une fonction auto-répétition : si vous restez avec la souris appuyée sur la scrollbar la fonction se répète automatiquement : pratique pour avancer secteur par secteur avec les 2 boutons Up et Down de la Scrollbar( le SmallChange )
Le Page Up et Page Down ( le LargeChange de la scrollbar) est aussi auto-répétitable
Pour ceux que cela intéresse le code source de la dll est ici : https://www.codeproject.com/Articles/624997/Enhanced-Scrollbar( attention c'est du C#)
Pour la lecture des octets stockés sur le disque en NTFS on ne fait plus appel à un fichier temporaire : on lit directement le ou les secteurs nécessaires sur la partition .

Cette source avait été faite en VB 6 au début par moi-même sous le pseudo Cs_Galain . Voici même le code qui a déclenché tout ce projet :http://vbcity.com/forums/t/6825.aspx
La source fut ensuite réécrite en VB Net pour donner le projet actuel !

Diverses améliorations ont été faites et quelques bugs ont été corrigés ( surtout en NTFS) lors de la dernière mise à jour .
Le projet est mis à jour régulièrement pour optimisation et correction de bugs .
N'hésitez pas à commenter : tous commentaires seront les bienvenus !

Un bug a été corrigé le 8 janvier 2018 sur l'affichage des Data en héxa-Ascii ( les offsets des octets dans les zones héxa-Ascii étaient incorrects pour les fichiers et répertoires dans les 3 systèmes FAT ainsi que pour les attributs non résidents en NTFS ) .
Correction d'un bug le 10/01/2018 concernant l'affichage des valeurs 8, 16 , 32 et 64 bits affichées dans las listviews ( valeurs héxadécimales , non signées et signées )
Correction bug le 11/01/2018 : le numéro du dernier secteur d'un disque physique ou d'une partition logique était incorrect dans les affichages héxa-Ascii en toute fin de scroll de la RichTextbox .

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Commenter la réponse de vb95

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.