Interruption 21h |
Fonction 44h, Sous-fonction 05h |
IOCTL: Envois des données direct par bloc |
---|---|---|
DOS 2.0+, OS/2, Windows NT |
Description
Cette fonction de type IOCTL permet d'effectuer l'envoi des données direct par bloc. Ainsi, elle transfert les données de contrôle d'un programme d'application directement vers un pilote de périphérique de bloc. La longueur et le contenu des données de contrôle sont spécifiques à chaque pilote de périphérique et ne respectent aucun format standard. Cette fonction n'entraîne pas nécessairement de sortie vers le périphérique physique.
Entrée
Registre | Valeur ou description | |
---|---|---|
AX | 4405h | |
BX | Ce registre permet d'indiquer l'unité de disque : | |
Valeur | Description | |
0 | Cette valeur permet d'indiquer l'unité courante | |
1 | Cette valeur permet d'indiquer l'unité de disque A: | |
2 | Cette valeur permet d'indiquer l'unité de disque B: | |
3 | Cette valeur permet d'indiquer l'unité de disque C: | |
4 | Cette valeur permet d'indiquer l'unité de disque D: | |
5 | Cette valeur permet d'indiquer l'unité de disque E: | |
6 | Cette valeur permet d'indiquer l'unité de disque F: | |
7 | Cette valeur permet d'indiquer l'unité de disque G: | |
8 | Cette valeur permet d'indiquer l'unité de disque H: | |
9 | Cette valeur permet d'indiquer l'unité de disque I: | |
10 | Cette valeur permet d'indiquer l'unité de disque J: | |
11 | Cette valeur permet d'indiquer l'unité de disque K: | |
12 | Cette valeur permet d'indiquer l'unité de disque L: | |
13 | Cette valeur permet d'indiquer l'unité de disque M: | |
14 | Cette valeur permet d'indiquer l'unité de disque N: | |
15 | Cette valeur permet d'indiquer l'unité de disque O: | |
16 | Cette valeur permet d'indiquer l'unité de disque P: | |
17 | Cette valeur permet d'indiquer l'unité de disque Q: | |
18 | Cette valeur permet d'indiquer l'unité de disque R: | |
19 | Cette valeur permet d'indiquer l'unité de disque S: | |
20 | Cette valeur permet d'indiquer l'unité de disque T: | |
21 | Cette valeur permet d'indiquer l'unité de disque U: | |
22 | Cette valeur permet d'indiquer l'unité de disque V: | |
23 | Cette valeur permet d'indiquer l'unité de disque W: | |
24 | Cette valeur permet d'indiquer l'unité de disque X: | |
25 | Cette valeur permet d'indiquer l'unité de disque Y: | |
26 | Cette valeur permet d'indiquer l'unité de disque Z: | |
CX | Nombre d'octets à transmettre | |
DS:DX | Cette paire de registre permet d'indiquer le pointeur long (FAR) sur le tampon (voir remarque) |
Sortie
Registre | Valeur ou description | |||
---|---|---|---|---|
FC | Ce registre de drapeau de retenue permet d'indiquer le résultat de l'opération : | |||
Valeur | Description | |||
0 | Cette valeur permet d'indiquer que l'opération a été un succès, et dans ce cas : | |||
Registre | Description | |||
AX | Ce registre permet d'indiquer le nombre d'octets transférés | |||
1 | Cette valeur permet d'indiquer qu'une erreur s'est produite et dans ce cas : | |||
Registre | Description | |||
AX | Ce registre permet d'indiquer le code d'erreur : | |||
Code | Description | |||
1 | Cette erreur indique que la fonction est inconnu | |||
15 | Cette erreur indique que le périphérique n'est pas reconnu |
Remarques
- Lorsqu'elle est prise en charge par le pilote, cette sous-fonction peut être utilisée pour demander des opérations dépendant du matériel (telles que le rembobinage de bande magnétique ou l'éjection de disque) n'étant pas fournies par d'autres appels de fonction DOS.
- Les pilotes de blocs ne sont pas requis pour prendre en charge la sous-fonction 05h de IOCTL. Si cette sous-fonction est demandée et que le pilote n'a pas la capacité de traiter les données de contrôle, le contrôle revient au programme avec le drapeau de retenue fixé à 1 et le code d'erreur 0001h (fonction non valide) dans le registre AX.
- Pour que la fonction puissent demander au pilote «DoubleSpace» d'écrire sur disque le contenu de ses tampons de caches internes c'est-à-dire les données des unités d'allocation (clusters), la «BitFAT» et la «MDFAT», votre tampon devra avoir la structure suivante :
Déplacement | Longueur | Valeur | Description |
---|---|---|---|
00h | 2 octets (1 mot) | 'DM' | Ce champs contient l'identificateur de Microsoft DoubleSpace. |
02h | 1 octet | 'F' | Ce champs contient l'identificateur de commande «FLUSH». |
03h | 2 octets (1 mot) | 0000h | Ce champs contiendra le code d'erreur après que l'appel aura eu lieu. Ainsi si l'opération c'est correctement déroulé, la combinaison de caractères 'OK' se trouva dans se champs. |
05h | 5 octets | 0,0,0,0,0 | Ce champs contient cinq octets de remplissage. |
Références
Aide-mémoire des interruptions du MS-DOS, Edition Marabout, Philippe Mercier, 1990, ISBN: 2-501-01297-6, page 227 à 230.
Dernière mise à jour : Jeudi, le 3 mars 2016