60Fermer62
PpHdLe 12/05/2009 à 20:14
stfox (./34) :
PpHd -> La même chose que lorsque que l'on active la compression de fichier dans le système de fichier NTFS
C'est à dire qu'à chaque opération de fichier: ouverture/fermeture, création, modification etc, celui-ci est automatiquement
compressé/décompressé, sans que l'utilisateur/application ne s'en soucis smile
Mais pour ca, il faut un compresseur spécifique pour que les ressources consommés soient minimales.

Folco -> Pour une large diffusion, encore faudrait'il qu'il y ai du public pour ca, or, si je ne m'abuse,
autant dans l'univers TI que HP la communauté se limite à une poigné de pationnés lol
Et j'aurais pas choisi de développer sous PedroM qui est d'autant plus exclusif niveau utilisateurs ....
Donc, pour la large diffusion, c'est déjà mort avant d'être né ... picol

Le principal but d'un drivers de compression, c'est justement d'être 'indolore' autant pour les
applications que pour l'utilisateur, c'est ni plus ni moins qu'une option à activer.
Les données 'vus' ne sont jamais les données compressées, donc le format de compression utilisé,
on s'en tape un peu beaucoup smile
Il faut se représenter ca comme une couche supplémentaire entre les applications (et donc l'utilisateur),
et les donnés.
De la même manière qu'on délègue au système d'exploitation la facon d'organiser les fichiers,
c'est le système qui s'occupe de compresser ou décompresser les fichiers suivant l'appel système.
Comme c'est le cas avec kPack et la décompression !

Ce que tu peux essayer de faire c'est voir du coté des fonctions de mise en Flash:
http://tigcc.ticalc.org/doc/vat.html#EM_moveSymFromExtMem
http://tigcc.ticalc.org/doc/vat.html#EM_moveSymToExtMem
http://tigcc.ticalc.org/doc/vat.html#EM_twinSymFromExtMem

ie. compresser automatiquement et à la volée si on archive le fichier, le décompresser autrement.
Mais ca ne gérera pas le cas d'un accès direct.
Pour çà le mieux et d'intercepter trap #3 + HeapDeref, et de faire un test pour désarchiver le fichier si c'est le cas (N'oublies pas de faire un cache pour redonner les entrées déjà compressés - utilise le système des twin pour le faire ).
Et il faudra après intercepter la sortie du programme pour libérer ces "fichiers" décompressées en RAM et que tu as décompréssé.
Tu peux meme penser à taguuer ton handle de facon spécial (bit de poids fort à 1) pour le reconnaitre de suite.

Si tu fais çà, ca pourra marcher à peu près sauf dans qqs programmes.
Mais tout le système de "hackage" du système est à faire en assembleur, pas en C...