Partager via


SetTapePosition, fonction (winbase.h)

La fonction SetTapePosition définit la position de la bande sur l’appareil spécifié.

Syntaxe

DWORD SetTapePosition(
  [in] HANDLE hDevice,
  [in] DWORD  dwPositionMethod,
  [in] DWORD  dwPartition,
  [in] DWORD  dwOffsetLow,
  [in] DWORD  dwOffsetHigh,
  [in] BOOL   bImmediate
);

Paramètres

[in] hDevice

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

[in] dwPositionMethod

Type de positionnement à effectuer. Ce paramètre peut prendre les valeurs suivantes.

Valeur Signification
TAPE_ABSOLUTE_BLOCK
1L
Déplace la bande vers l’adresse de bloc spécifique à l’appareil spécifiée par les paramètres dwOffsetLow et dwOffsetHigh . Le paramètre dwPartition est ignoré.
TAPE_LOGICAL_BLOCK
2L
Déplace la bande vers l’adresse de bloc spécifiée par dwOffsetLow et dwOffsetHigh dans la partition spécifiée par dwPartition.
TAPE_REWIND
0L
Déplace la bande au début de la partition actuelle. Les paramètres dwPartition, dwOffsetLow et dwOffsetHigh sont ignorés.
TAPE_SPACE_END_OF_DATA
4L
Déplace la bande à la fin des données sur la partition spécifiée par dwPartition.
TAPE_SPACE_FILEMARKS
6L
Déplace la bande vers l’avant (ou vers l’arrière) le nombre de repères de fichier spécifié par dwOffsetLow et dwOffsetHigh dans la partition actuelle. Le paramètre dwPartition est ignoré.
TAPE_SPACE_RELATIVE_BLOCKS
5L
Déplace la bande vers l’avant (ou vers l’arrière) le nombre de blocs spécifié par dwOffsetLow et dwOffsetHigh dans la partition actuelle. Le paramètre dwPartition est ignoré.
TAPE_SPACE_SEQUENTIAL_FMKS
7L
Déplace la bande vers l’avant (ou vers l’arrière) vers la première occurrence de n repères de fichier dans la partition active, où n est le nombre spécifié par dwOffsetLow et dwOffsetHigh. Le paramètre dwPartition est ignoré.
TAPE_SPACE_SEQUENTIAL_SMKS
9L
Déplace la bande vers l’avant (ou vers l’arrière) vers la première occurrence de n setmarks dans la partition actuelle, où n est le nombre spécifié par dwOffsetLow et dwOffsetHigh. Le paramètre dwPartition est ignoré.
TAPE_SPACE_SETMARKS
8L
Déplace la bande vers l’avant (ou vers l’arrière) le nombre de setmarks spécifié par dwOffsetLow et dwOffsetHigh dans la partition actuelle. Le paramètre dwPartition est ignoré.

[in] dwPartition

Partition à placer dans. Si dwPartition est égal à zéro, la partition actuelle est utilisée. Les partitions sont numérotées logiquement de 1 à n, où 1 est la première partition sur la bande et n est la dernière.

[in] dwOffsetLow

Bits d’ordre inférieur de l’adresse ou du nombre de blocs pour l’opération de position spécifiée par le paramètre dwPositionMethod .

[in] dwOffsetHigh

Bits d’ordre élevé de l’adresse de bloc ou du nombre pour l’opération de position spécifiée par le paramètre dwPositionMethod . Si les bits d’ordre élevé ne sont pas requis, ce paramètre doit être égal à zéro.

[in] bImmediate

Indique s’il faut retourner dès que l’opération de déplacement commence. Si ce paramètre a la valeur TRUE, la fonction retourne immédiatement ; si la valeur est FALSE, la fonction ne retourne pas tant que l’opération de déplacement n’est pas terminée.

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.

Erreur Description
ERROR_BEGINNING_OF_MEDIA
1102L
Une 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 limite 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 pas de 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
Une valeur setmark a été atteinte lors d’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

Si le décalage spécifié par dwOffsetLow et dwOffsetHigh spécifie le nombre de blocs, de repères de fichier ou de setmarks à déplacer, un décalage positif déplace la bande vers l’avant jusqu’à la fin du dernier bloc, filemark ou setmark. Un décalage négatif déplace la bande vers l’arrière jusqu’au début du dernier bloc, de la marque de fichier ou du dernier setmark. Si le décalage est égal à zéro, la bande ne se déplace pas.

Pour obtenir des informations sur les status, les fonctionnalités et les capacités des lecteurs de bande et du média, appelez la fonction GetTapeParameters.

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

GetTapePosition