Interruption 1Ah |
Fonction B0h, Sous-fonction 01h |
Tester l'installation du pilote MRCI |
---|---|---|
MRCI (Microsoft Realtime Compression Interface) |
Description
Cette sous-fonction permet de tester l'installation du pilote MRCI (abréviation de Microsoft Realtime Compression Interface) dit serveur «ROM-BASED».
Entrée
Registre | Valeur ou description |
---|---|
AX | B001h |
CX | 4D52h ("MR") |
DX | 4349h ("CI") |
Sortie
Registre | Valeur ou description | ||||
---|---|---|---|---|---|
CX | 4943h ("IC") si installée | ||||
DX | 524Dh ("RM") si installée | ||||
ES:DI | Cette paire de registres contient une adresse pointant sur la structure de données MRCINFO suivante : | ||||
Déplacement | Taille | Description | |||
00h | 4 octets | Ce champ permet d'indiquer la signature de Microsoft «MSFT» | |||
04h | 2 octets (mot) | Ce champ permet d'indiquer la version du serveur (Partie haute = représente la version majeur) | |||
06h | 2 octets (mot) | Ce champ permet d'indiquer la spécification de version du MRCI | |||
08h | 4 octets (double mot) | Ce champ permet d'indiquer l'adresse du point d'entrée du serveur | |||
0Ch | 2 octets (mot) | Ce champ contient le drapeau contenant les informations de compatibilité du serveur : | |||
Bit | Description | ||||
0 | Compression standard | ||||
1 | Décompression standard | ||||
2 | Mise-à-jour de la compression | ||||
3 | Compression maximal | ||||
4 | Réservé | ||||
5 | Décompression incrémental | ||||
6 à 14 | Réservés | ||||
15 | Cette structure de données est en ROM et ne peut être modifié | ||||
0Eh | 2 octets (mot) | Ce champ de drapeau contient la compatibilité d'assistance matériel: | |||
Bit | Description | ||||
0 | Compression standard | ||||
1 | Décompression standard | ||||
2 | Compression mise-à-jour | ||||
3 | Compression maximal | ||||
4 | Réservé | ||||
5 | Décompression incrémental | ||||
6 à 14 | Réservés | ||||
15 | Cette structure de données est en ROM et ne peut être modifié | ||||
10h | 2 octets (mot) | Ce champ permet d'indiquer la taille maximum des blocs supporté par le serveur (laissant au moins 8192 octets) |
Remarques
- L'appel de cette fonction est identique à l'interruption 2Fh, Fonction 4Ah, Sous-Fonction 1Ah, mais doit être appelé avant l'interruption 2Fh.
- Vous pouvez appeler vous même le point d'entrée MRCI dans le façon suivante (pour son entrée):
Registre Valeur ou description DS:SI Cette paire de registre pointe sur la structure MRCREQUEST (voir remarque suivante) CX Ce registre permet d'indiquer le type de client : Valeur Description 0000h Application 0001h Fichier système AX Ce registre permet d'indiquer l'opération a effectuer: Valeur Description 0001h Cette valeur permet d'indiquer qu'il faut effectuer une compression standard 0002h Cette valeur permet d'indiquer qu'il faut effectuer une décompression standard 0004h Cette valeur permet d'indiquer qu'il faut effectuer une mise-à-jour de la compression 0008h Cette valeur permet d'indiquer qu'il faut effectuer une compression maximal 0020h Cette valeur permet d'indiquer qu'il faut effectuer une décompression incrémental FFFFh Efface les drapeaux
BX=Ce registre permet d'indiquer le masque de drapeaux à effacer (fixer dans BX les drapeaux étant à effacer)A sa sortie :
Registre Valeur ou description AX Ce registre permet d'indiquer le résultat de l'opération : Valeur Description 0000h Tous va bien 0001h Fonction invalide 0002h Serveur occupé, essayer encore 0003h Tampon destinataire trop petit 0004h Donnée incompressable 0005h Mauvaise compression du format de donnée
- Il est possible de faire en sorte que le pilote MRCI peut enchaîner au pilote précédent.
- Voici le format de la structure de données MRCREQUEST :
- Les tampons source et destinataire ne peuvent pas être recouvrable.
- La taille de la source et le destinataire peuvent être utilisé normalement par la même application sans mise à jour du contenu de la structure de données MRCREQUEST après des appelles à la décompression incrémental.
Déplacement | Taille | Description |
---|---|---|
00h | 4 octets (2 mots) | Ce champ permet d'indiquer un pointeur sur le tampon source |
04h | 2 octets (mot) | Ce champ permet d'indiquer la taille du tampon source (0000h=64 Ko) |
06h | 2 octets (mot) | (Utilisé dans la compression mise à jour seulement) (Entrée) Déplacement du tampon source où commencent le changement de donnée (Sortie) Déplacement du tampon destinataire ou commencent le changement de donnée compressé |
08h | 4 octets (2 mots) | Ce champ permet d'indiquer un pointeur au tampon destinataire |
A partir de ce point, contient les données de la compression original pour la compression mise-à-jour | ||
0Ch | 2 octets (mot) | Taille du tampon destinataire (0000h = 64 Ko) N'importe quel compression: Nombre d'octets devant être décompresser Décompression standard: Nombre d'octets devant être décompresser Décompression incrémental: Nombre d'octets devant être décompresser maintenant (Sortie) Taille actuel du résultat de donnée |
0Eh | 2 octets (mot) | Ce champ permet d'indiquer la taille d'allocation des données de compression du client |
10h | 4 octets (2 mots) | Ce champ permet d'indiquer l'état des données de la décompression incrémental (mettre à 00000000h avant la première appel à la décompression incrémental) |
Dernière mise à jour : Jeudi, le 3 mars 2016