Partager via


GetTapePosition, fonction (winbase.h)

La fonction GetTapePosition récupère l’adresse actuelle de la bande, dans des blocs logiques ou absolus.

Syntaxe

DWORD GetTapePosition(
  [in]  HANDLE  hDevice,
  [in]  DWORD   dwPositionType,
  [out] LPDWORD lpdwPartition,
  [out] LPDWORD lpdwOffsetLow,
  [out] LPDWORD lpdwOffsetHigh
);

Paramètres

[in] hDevice

Gérez l’appareil sur lequel obtenir la position de la bande. Ce handle est créé à l’aide de CreateFile.

[in] dwPositionType

Type d’adresse à obtenir. Ce paramètre peut prendre les valeurs suivantes.

Valeur Signification
TAPE_ABSOLUTE_POSITION
0L
Les paramètres lpdwOffsetLow et lpdwOffsetHigh reçoivent l’adresse de bloc spécifique à l’appareil. Le paramètre dwPartition reçoit zéro.
TAPE_LOGICAL_POSITION
1L
Les paramètres lpdwOffsetLow et lpdwOffsetHigh reçoivent l’adresse de bloc logique. Le paramètre dwPartition reçoit la partition de bande logique.

[out] lpdwPartition

Pointeur vers une variable qui reçoit le numéro de la partition de bande actuelle. Les partitions sont numérotées logiquement de 1 à n, où 1 est la première partition de la bande et n est la dernière. Lorsqu’une adresse de bloc spécifique à l’appareil est récupérée ou si l’appareil ne prend en charge qu’une seule partition, ce paramètre reçoit zéro.

[out] lpdwOffsetLow

Pointeur vers une variable qui reçoit les bits d’ordre inférieur de la position actuelle de la bande.

[out] lpdwOffsetHigh

Pointeur vers une variable qui reçoit les bits d’ordre élevé de la position actuelle de la bande. Ce paramètre peut avoir la valeur NULL si les bits d’ordre élevé ne sont pas requis.

Valeur retournée

Si la fonction réussit, la valeur de retour est NO_ERROR.

Si la fonction échoue, elle peut retourner l’un des codes d’erreur suivants.

Code d'erreur Description
ERROR_BEGINNING_OF_MEDIA
1102L
Tentative d’accès aux données avant l’échec du marqueur de début du moyen.
ERROR_BUS_RESET
1111L
Une condition de réinitialisation a été détectée sur le bus.
ERROR_DEVICE_NOT_PARTITIONED
1107L
Les informations de partition sont introuvables lors du chargement d’une bande.
ERROR_END_OF_MEDIA
1100L
Le marqueur de fin de bande a été atteint lors d’une opération.
ERROR_FILEMARK_DETECTED
1101L
Une marque de fichier a été atteinte lors d’une opération.
ERROR_INVALID_BLOCK_LENGTH
1106L
La taille du bloc est incorrecte sur une nouvelle bande dans une partition multivolume.
ERROR_MEDIA_CHANGED
1110L
La bande qui se trouvait dans le lecteur a été remplacée ou supprimée.
ERROR_NO_DATA_DETECTED
1104L
Le marqueur de fin de données a été atteint pendant une opération.
ERROR_NO_MEDIA_IN_DRIVE
1112L
Il n’y a aucun média dans le lecteur.
ERROR_NOT_SUPPORTED
50L
Le pilote de bande ne prend pas en charge une fonction demandée.
ERROR_PARTITION_FAILURE
1105L
Impossible de partitionner la bande.
ERROR_SETMARK_DETECTED
1103L
Un setmark a été atteint pendant une opération.
ERROR_UNABLE_TO_LOCK_MEDIA
1108L
Une tentative de verrouillage du mécanisme d’éjection a échoué.
ERROR_UNABLE_TO_UNLOAD_MEDIA
1109L
Une tentative de déchargement de la bande a échoué.
ERROR_WRITE_PROTECT
19L
Le support est protégé en écriture.

Remarques

Une adresse de bloc logique est relative à une partition. La première adresse de bloc logique sur chaque partition est zéro.

Appelez la fonction GetTapeParameters pour obtenir des informations sur les status, les fonctionnalités et les capacités des lecteurs de bande et des supports multimédias.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête winbase.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

CreateFile

GetTapeParameters

SetTapePosition