Interruption 21h |
Fonction 44h, Sous-fonction 02h |
IOCTL: Lecture de données par bloc |
---|---|---|
DOS 2.0+, OS/2, Windows NT |
Description
Cette fonction de type IOCTL permet d'effectuer la lecture de données par bloc.
Entrée
Registre | Valeur ou description |
---|---|
AX | 4402h |
BX | Handle |
CX | Longueur du tampon ou de la structure de réquisition |
DS:DX | Cette paire de registre permet d'indiquer l'adresse d'un pointeur long (FAR) sur le tampon ou le bloc de réquisition (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, 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 | |||
6 | Cette erreur permet d'indiquer que le Handle est inconnu |
Remarques
- Si elle est prise en charge par le pilote, cette sous-fonction peut être utilisée pour obtenir des informations d'état et de disponibilité dépendant du matériel n'étant pas prises en charge par d'autres appels de fonction DOS.
- Les pilotes de périphérique de caractères ne sont pas requis pour prendre en charge la sous-fonction 02h de IOCTL. Un programme peut tester le bit 14 du mot d'informations de périphérique renvoyé par la sous-fonction 00h de IOCTL pour déterminer si le pilote prend en charge cette sous-fonction. Si la sous-fonction 02h 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 appeler un bloc de réquisition «GetProtocolManagerInfo», votre tampon devra avoir la structure suivante :
- Pour que la fonction puissent appeler un bloc de réquisition «RegisterModule», votre tampon devra avoir la structure suivante :
- Pour que la fonction puissent appeler un bloc de réquisition «BindAndStart», votre tampon devra avoir la structure suivante :
- Pour que la fonction puissent appeler un bloc de réquisition «GetProtocolManagerLinkage», votre tampon devra avoir la structure suivante:
- Pour que la fonction puissent appeler un bloc de réquisition «GetProtocolIniPath», votre tampon devra avoir la structure suivante:
- Pour que la fonction puissent appeler un bloc de réquisition «RegisterProtocolManagerInfo», votre tampon devra avoir la structure suivante:
- Pour que la fonction puissent appeler un bloc de réquisition «InitAndRegister», votre tampon devra avoir la structure suivante:
- Pour que la fonction puissent appeler un bloc de réquisition «UnbindAndStop», votre tampon devra avoir la structure suivante:
- Pour que la fonction puissent appeler un bloc de réquisition «BindStatus», votre tampon devra avoir la structure suivante:
- Pour que la fonction puissent appeler un bloc de réquisition «BindStatus», votre tampon devra avoir la structure suivante:
- Voici la liste des codes d'état:
- Voici la structure d'une table de caractéristique commune :
- Voici les valeurs des «limite de niveau du protocole» :
- Voici la structure d'une table d'envoi:
- Voici la structure des spécifications de la table des caractéristiques MAC:
- Voici la structure des spécifications de la table des caractéristiques du réseau en BIOS (NetBIOS):
Déplacement | Longueur | Description |
---|---|---|
00h | 2 octets (1 mot) | Ce champ contient la valeur 01h. |
02h | 2 octets (1 mot) | Ce champ retourne l'état de retour (voir remarque). |
04h | 4 octets (2 mots) | Ce champ retourne un pointeur représentant la structure de la configuration utilisateur. |
08h | 4 octets (2 mots) | Ce champ est réservé pour une utilisation interne ou futur |
0Ch | 2 octets (mot) | Ce champ retourne la version, en format BCD, du NDIS dans lequel le gestionnaire de protocole est chargée. |
Déplacement | Longueur | Description |
---|---|---|
00h | 2 octets (1 mot) | Ce champ contient la valeur 02h. |
02h | 2 octets (1 mot) | Ce champ retourne l'état de retour (voir remarque). |
04h | 4 octets (2 mots) | Ce champ retourne un pointeur représentant la structure d'un module de caractéristiques commune. |
08h | 4 octets (2 mots) | Ce champ retourne un pointeur sur une liste de modules dans lequel il est renfermé |
0Ch | 2 octets (mot) | Ce champ n'est pas utilisé. |
Déplacement | Longueur | Description |
---|---|---|
00h | 2 octets (1 mot) | Ce champ contient la valeur 03h. |
02h | 2 octets (1 mot) | Ce champ retourne l'état de retour (voir remarque). |
04h | 4 octets (2 mots) | Ce champ retourne l'adresse d'une entrée d'une procédure virtuel dans la structure «FailingModules». |
08h | 6 octets (3 mots) | Ce champ n'est pas utilisé. |
Déplacement | Longueur | Description |
---|---|---|
00h | 2 octets (1 mot) | Ce champ contient la valeur 04h. |
02h | 2 octets (1 mot) | Ce champ retourne l'état de retour (voir remarque). |
04h | 4 octets (2 mots) | Ce champ retourne un point d'expédition. Ce point d'expédition peut être appeler à la place de l'utilisation du IOCTL comme suit: Dans la Pile: Mot Segment de donnée du gestionnaire de protocole Doublemot Pointeur sur le bloc de réquisition Retour: AX=État de retour et la pile est désempilée |
08h | 4 octets (2 mots) | Ce champ n'est pas utilisé. |
0Ch | 2 octets (mot) | Ce champ retourne le segment de donnée du gestionnaire de protocole. |
Déplacement | Longueur | Description |
---|---|---|
00h | 2 octets (1 mot) | Ce champ contient la valeur 05h. |
02h | 2 octets (1 mot) | Ce champ retourne l'état de retour (voir remarque). |
04h | 4 octets (2 mots) | Ce champ retourne un pointeur sur un tampon contenant le chemin ASCIIZ du fichier de configuration «PROTOCOL.INI». |
08h | 4 octets (2 mots) | Ce champ n'est pas utilisé. |
0Ch | 2 octets (mot) | Ce champ retourne la longueur du tampon. |
Déplacement | Longueur | Description |
---|---|---|
00h | 2 octets (1 mot) | Ce champ contient la valeur 06h. |
02h | 2 octets (1 mot) | Ce champ retourne l'état de retour (voir remarque). |
04h | 4 octets (2 mots) | Ce champ retourne un pointeur sur une structure contenant l'analyse qu'utilise le fichier de configuration. |
08h | 4 octets (2 mots) | Ce champ n'est pas utilisé. |
0Ch | 2 octets (mot) | Ce champ retourne la longueur de la structure. |
Déplacement | Longueur | Description |
---|---|---|
00h | 2 octets (1 mot) | Ce champ contient la valeur 07h. |
02h | 2 octets (1 mot) | Ce champ retourne l'état de retour (voir remarque). |
04h | 4 octets (2 mots) | Ce champ n'est pas utilisé. |
08h | 4 octets (2 mots) | Ce champ contient un pointeur sur un nom ASCIIZ d'un module d'initialisation devant être préattacher. |
0Ch | 2 octets (mot) | Ce champ n'est pas utilisé. |
Déplacement | Longueur | Description |
---|---|---|
00h | 2 octets (1 mot) | Ce champ contient la valeur 08h. |
02h | 2 octets (1 mot) | Ce champ retourne l'état de retour (voir remarque). |
04h | 4 octets (2 mots) | Ce champ contient une adresse vers un module d'échec pour le réattachement et démarrage (BindAndStop). |
08h | 4 octets (2 mots) | Ce champ contient un pointeur de détachement. S'il n'est pas égal à 0000h:0000h, pointe sur nom ASCIIZ d'un module détacher. S'il est égal 0000h:0000h, termine et fixe la dynamique précédente. |
0Ch | 2 octets (mot) | Ce champ n'est pas utilisé. |
Déplacement | Longueur | Description |
---|---|---|
00h | 2 octets (1 mot) | Ce champ contient la valeur 09h. |
02h | 2 octets (1 mot) | Ce champ retourne l'état de retour (voir remarque). |
04h | 4 octets (2 mots) | Ce champ contient une adresse de la racine de l'arbre de répertoire. Doit être 0000h:0000h, au retour pointe sur la racine de l'arbre de répertoire. |
08h | 4 octets (2 mots) | Ce champ contient doit contenir 0000h:0000h. |
0Ch | 2 octets (mot) | Ce champ est utilisé pour un usage interne. |
Déplacement | Longueur | Description |
---|---|---|
00h | 2 octets (1 mot) | Ce champ contient la valeur 0Ah. |
02h | 2 octets (1 mot) | Ce champ retourne l'état de retour (voir remarque). |
04h | 4 octets (2 mots) | Ce champ doit contenir 0000h:0000h. |
08h | 4 octets (2 mots) | Ce champ contient un pointeur sur le nom du module de format ASCIIZ ayant une taille de 16 octets. |
0Ch | 2 octets (mot) | Ce champ doit contenir 0000h. |
Code d'état | Description |
---|---|
0000h | Ce code d'état indique qu'aucune erreur n'est signalé. |
0001h | Ce code d'état indique un état d'attente de relâchement du protocole retenant le contrôle des données du tampon. |
0002h | Ce code d'état indique une réquisition de la queue. |
0003h | Ce code d'état indique que le format est inconnu. |
0004h | Ce code d'état indique que le format est rejeté. |
0005h | Ce code d'état indique que le format doit être avant. |
0006h | Ce code d'état indique un manque de ressource. |
0007h | Ce code d'état indique que le paramètre n'est pas valide. |
0008h | Ce code d'état indique que la fonction n'est pas valide. |
0009h | Ce code d'état indique que la fonction n'est pas supporté. |
000Ah | Ce code d'état indique une erreur au niveau matériel. |
000Bh | Ce code d'état indique une erreur au niveau de la transmission. |
000Bh | Ce code d'état indique que la destination n'est pas reconnue. |
000Dh | Ce code d'état indique que le tampon est trop petit. |
0020h | Ce code d'état indique que le pilote est déjà prêt à redémarrer. |
0021h | Ce code d'état indique que le détachement n'a pas être effectuer totalement. |
0022h | Ce code d'état indique que le pilote n'est pas été initialisé. |
0023h | Ce code d'état indique que le matériel n'est pas détecté ou absent. |
0024h | Ce code d'état indique que le matériel est défectueux. |
0025h | Ce code d'état indique que la configuration n'est pas valide. |
0026h | Ce code d'état indique qu'un conflit existe entre certaines interruptions. |
0027h | Ce code d'état indique que l'adresse MAC n'est pas compatible. |
0028h | Ce code d'état indique qu'un échec a eu lieu lors de l'initialisation. |
0029h | Ce code d'état indique qu'il n'y a pas de reliable. |
002Ah | Ce code d'état indique que le réseau ne peut pas être détaché. |
002Bh | Ce code d'état indique que la version de système d'exploitation n'est pas compatible. |
002Ch | Ce code d'état indique que les données sont déjà enregistrées. |
002Dh | Ce code d'état indique que le chemin ou le répertoire n'a pas été trouvé. |
002Eh | Ce code d'état indique que la quantité de mémoire n'est pas suffisante. |
002Fh | Ce code d'état indique que l'information n'est pas trouvable. |
00FFh | Ce code d'état indique échec général. |
F000h à FFFFh | Ces codes d'état indique sont spécifiques aux manufacturiers. |
Déplacement | Longueur | Description | ||
---|---|---|---|---|
00h | 2 octets (1 mot) | Ce champ contient la taille de la table en octets. | ||
02h | 1 octet | Ce champ contient la version majeur du NDIS. | ||
03h | 1 octet | Ce champ contient la version mineur du NDIS. | ||
04h | 2 octets (mot) | Ce champ est réservé pour une utilisation interne ou futur. | ||
06h | 1 octet | Ce champ contient la version majeur du module. | ||
07h | 1 octet | Ce champ contient la version mineur du module. | ||
08h | 4 octets (2 mots) | Ce champ contient les drapeaux du module de fonction: | ||
Bits | Description | |||
0 | Ce bit indique s'il vaut 1 que le détachement des limites hautes est supportée | |||
1 | Ce bit indique s'il vaut 1 que le détachement des limites basses est supportée | |||
2 | Ce bit indique s'il vaut 1 s'il y a des limitations dynamiques | |||
0Ch | 16 octets | Ce champ contient le nom du module en format ASCIIZ | ||
1Ch | 1 octet | Ce champ contient la haute limite de niveau du protocole (voir ci-dessous) | ||
1Dh | 1 octet | Ce champs contient la haute limite du type d'interface: | ||
Cas | Action | |||
Pour les MACs | 1=MAC | |||
Pour des données liées et transports | Doit être défini | |||
Pour une session | 1=NCB | |||
Chaque niveau | 0=privée (Définition ISV) | |||
1Eh | 1 octet | Ce champ contient la basse limite de niveau du protocole (même chose qu'au déplacement 1Ch). | ||
1Fh | 1 octet | Ce champ contient la basse limite du type d'interface (même chose qu'au déplacement 1Dh). | ||
20h | 2 octets (mot) | Ce champ contient l'identificateur du module remplit dans un gestionnaire de protocole. | ||
22h | 2 octets (mot) | Ce champ contient le segment de données du module (DS du module). | ||
24h | 4 octets (2 mots) | Ce champ contient un pointeur d'entrée d'une réquisition du système. | ||
28h | 4 octets (2 mots) | Ce champ contient un pointeur sur les caractéristiques des spécifications de service (0000h:0000h s'il n'y en a pas). | ||
2Ch | 4 octets (2 mots) | Ce champ contient un pointeur sur l'état des spécifications de service (0000h:0000h s'il n'y en a pas). | ||
30h | 4 octets (2 mots) | Ce champ contient un pointeur sur la partie haute de la table d'envoi (voir ci-dessous) (0000h:0000h s'il n'y en a pas). | ||
34h | 4 octets (2 mots) | Ce champ contient un pointeur sur la partie basse de la table d'envoi (voir ci-dessous) (0000h:0000h s'il n'y en a pas). | ||
38h | 8 octets (4 mots) | Ce champ contient toujours la valeur 0. |
Code | Description |
---|---|
00h | Ce code indique un niveau physique. |
01h | Ce code indique un contrôle d'accès média. |
02h | Ce code indique un lien de données. |
03h | Ce code indique un réseau. |
04h | Ce code indique un transport. |
05h | Ce code indique une session. |
FFh | Ce code indique qu'il n'y a pas de spécification. |
Déplacement | Longueur | Description |
---|---|---|
00h | 4 octets (2 mots) | Ce champ contient la table de caractéristique commune (voir plus haute). |
04h | 4 octets (2 mots) | Ce champ contient une structuration interne. |
08h | 4 octets (2 mots) | Ce champ contient une fonction interne (appeler avec 12 octets dans les arguments de la pile). |
0Ch | 4 octets (2 mots) | Ce champ contient une fonction interne (appeler avec 10 octets dans les arguments de la pile). |
10h | 4 octets (2 mots) | Ce champ contient une fonction interne (appeler avec 16 octets dans les arguments de la pile). |
14h | 4 octets (2 mots) | Ce champ contient une fonction interne (appeler avec 4 octets dans les arguments de la pile). |
18h | 4 octets (2 mots) | Ce champ contient une fonction interne (appeler avec 18 octets dans les arguments de la pile). |
1Ch | 4 octets (2 mots) | Ce champ contient une fonction interne (appeler avec 12 octets dans les arguments de la pile). |
Déplacement | Longueur | Description | ||
---|---|---|---|---|
00h | 2 octets (1 mot) | Ce champ contient la taille de la table en octets. | ||
02h | 16 octets (8 mots) | Ce champ contient le type de nom MAC en format ASCIIZ: | ||
Code | Nom | |||
802.3 | Ethernet | |||
802.4 | Large bande | |||
802.5 | Anneau à jeton «TokenRing» | |||
802.6 | SMDS, DBDQ | |||
DIX | DIX | |||
DIX+802.3 | DIX+802.3 | |||
APPLETALK | AppleTalk | |||
ARCNET | ArcNet | |||
FDDI | FDDI | |||
SDLC | SDLC | |||
BSC | BSC | |||
HDLC | HDLC | |||
ISDN | ISDN | |||
12h | 2 octets (mot) | Ce champ contient la longueur des adresses de station en octets. | ||
14h | 16 octets (8 mots) | Ce champ contient l'adresse de la station permanente. | ||
24h | 16 octets (8 mots) | Ce champ contient l'adresse de la station courante. | ||
34h | 4 octets (2 mots) | Ce champ contient l'adresse de l'adaptateur des fonctionnalités courante (00000000h si aucune). | ||
38h | 4 octets (2 mots) | Ce champ contient l'adresse de la liste du «MultiCast». | ||
3Ch | 4 octets (2 mots) | Ce champ contient la vitesse de la transmission en bits/seconde (BAUD). | ||
40h | 4 octets (2 mots) | Ce champ contient le drapeau de service: | ||
Bits | Description | |||
0 | Ce bit indique qu'il supporte le «Broadcast» | |||
1 | Ce bit indique qu'il supporte le «MultiCast» | |||
2 | Ce bit indique qu'il supporte les adressages des fonctionnalités de groupe | |||
3 | Ce bit indique qu'il supporte le mode de conduction léger | |||
4 | Ce bit indique l'adresse de la station logiciel est fixable | |||
5 | Ce bit indique les statistiques courante | |||
6 | Ce bit indique qu'il supporte le diagnostique d'initialisation | |||
7 | Ce bit indique qu'un signal est reçu au lieu d'une indication «ReceiveLookahead» | |||
8 | Ce bit indique que l'adresse MAC fait premièrement une indication de chaîne | |||
9 | Ce bit indique s'il supporte le routage IBM | |||
10 | Ce bit indique s'il supporte la réinitialisation MAC | |||
11 | Ce bit indique s'il supporte les adaptateurs OPEN/CLOSE | |||
12 | Ce bit indique s'il supporte le réquisition d'interruption | |||
13 | Ce bit indique s'il supporte le pont de la routine source | |||
14 | Ce bit indique s'il supporte les adresses virtuel GDT (version OS/2) | |||
15 | Ce bit fixe plusieurs transfère de données disponible pendant une simple indication. | |||
16 | Ce bit du MAC normal fixe la taille du format (FrameSize) à 0 dans un «ReceiveLookahead» | |||
44h | 2 octets (mot) | Ce champ contient la taille maximal du format/chassie (Frame) lequel peut émettre ou recevoir. | ||
46h | 4 octets (2 mots) | Ce champ contient la capacité total du tampon de transmission en octets. | ||
4Ah | 2 octets (mot) | Ce champ contient la taille d'allocation du tampon du bloc de transmission en octets. | ||
4Ch | 4 octets (2 mots) | Ce champ contient la capacité total d'envoi de tampon en octets. | ||
50h | 2 octets (mot) | Ce champ contient la taille de l'allocation du bloc de réception en octets. | ||
52h | 3 octets | Ce champ contient le code du manufacturier IEEE. | ||
55h | 1 octet | Ce champ contient le code de l'adaptateur du manufacturier. | ||
56h | 4 octets (2 mots) | Ce champ contient un pointeur sur la description du manufacturier en format ASCIIZ. | ||
5Ah | 2 octets (mot) | Ce champ indique l'adaptateur qu'utilise l'IRQ. | ||
5Ch | 2 octets (mot) | Ce champ indique la profondeur de la queue de transmission. | ||
5Eh | 2 octets (mot) | Ce champ indique le nombre maximal de bloc de donnée dans un tampon de description supportée. | ||
60h | N octets | Ce champ contient les informations spécifique au manufacturier. |
Déplacement | Longueur | Description |
---|---|---|
00h | 2 octets (mot) | Ce champ contient la longueur de la table en octets. |
02h | 16 octets (8 mots) | Ce champ contient le type de nom (en format ASCIIZ) du module NetBIOS. |
12h | 2 octets (mot) | Ce champ contient le code du module NetBIOS. |
14h | N octets | Ce champ contient les informations spécifique au manufacturier. |
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