Partager via


Méthode IDiscFormat2Data::Write (imapi2.h)

Écrit le flux de données sur l’appareil.

Note Pour que l’écriture réussisse, la taille du flux transmis doit être un multiple de la taille du secteur, 2048. Cela inclut les opérations qui utilisent des flux associés aux images .iso non créées par IMAPI.

 

Syntaxe

HRESULT Write(
  [in] IStream *data
);

Paramètres

[in] data

Interface IStream du flux de données à écrire.

Valeur retournée

S_OK est retourné en cas de réussite, mais d’autres codes de réussite peuvent être retournés à la suite de l’implémentation. Les codes d’erreur suivants sont généralement retournés en cas d’échec de l’opération, mais ne représentent pas les seules valeurs d’erreur possibles :

Code de retour Description
E_IMAPI_RECORDER_COMMAND_TIMEOUT
L’appareil n’a pas pu accepter la commande dans le délai d’expiration. Cela peut être dû au fait que l’appareil a entré un état incohérent ou que la valeur du délai d’expiration de la commande doit être augmentée.

Valeur : 0xC0AA020D

E_IMAPI_RECORDER_INVALID_RESPONSE_FROM_DEVICE
L’appareil a signalé des données inattendues ou non valides pour une commande.

Valeur : 0xC0AA02FF

E_IMAPI_RECORDER_MEDIA_UPSIDE_DOWN
Le média est inséré à l’envers.

Valeur : 0xC0AA0204

E_IMAPI_RECORDER_MEDIA_BECOMING_READY
Le lecteur a signalé qu’il est en train de se préparer. Veuillez réessayer la demande ultérieurement.

Valeur : 0xC0AA0205

E_IMAPI_RECORDER_MEDIA_NO_MEDIA
Il n’y a aucun média dans l’appareil.

Valeur : 0xC0AA0202

E_IMAPI_RECORDER_MEDIA_FORMAT_IN_PROGRESS
Le média est en cours de mise en forme. Attendez que le format se termine avant d’essayer d’utiliser le média.

Valeur : 0xC0AA0206

E_IMAPI_RECORDER_MEDIA_BUSY
Le lecteur a signalé qu’il effectuait une opération de longue durée, comme la fin d’une écriture. Le lecteur peut être inutilisable pendant une longue période.

Valeur : 0xC0AA0207

E_IMAPI_LOSS_OF_STREAMING
L’écriture a échoué, car le lecteur n’a pas reçu les données assez rapidement pour continuer l’écriture. Le déplacement des données sources vers l’ordinateur local, la réduction de la vitesse d’écriture ou l’activation d’un paramètre « sans exécution de mémoire tampon » peut résoudre ce problème.

Valeur : 0xC0AA0300

E_IMAPI_RECORDER_MEDIA_INCOMPATIBLE
Le média n’est pas compatible ou de format physique inconnu.

Valeur : 0xC0AA0203

E_IMAPI_RECORDER_DVD_STRUCTURE_NOT_PRESENT
La structure DVD n’est pas présente. Cela peut être dû à l’utilisation d’un lecteur/d’un support incompatible.

Valeur : 0xC0AA020E

E_IMAPI_RECORDER_NO_SUCH_MODE_PAGE
L’appareil a signalé que la page du mode demandé (et le type) n’est pas présent.

Valeur : 0xC0AA0201

E_IMAPI_RECORDER_INVALID_MODE_PARAMETERS
Le lecteur a signalé que la combinaison de paramètres fournie dans la page de mode d’une commande MODE SELECT n’était pas prise en charge.

Valeur : 0xC0AA0208

E_IMAPI_RECORDER_MEDIA_WRITE_PROTECTED
Le lecteur a signalé que le média est protégé en écriture.

Valeur : 0xC0AA0209

E_IMAPI_RECORDER_MEDIA_SPEED_MISMATCH
La vitesse du média n’est pas compatible avec l’appareil. Cela peut être dû à l’utilisation d’un média de vitesse supérieure ou inférieure à la plage de vitesses prise en charge par l’appareil.

Valeur : 0xC0AA020F

HRESULT_FROM_WIN32(ERROR_INVALID_HANDLE)
Le handle spécifié n’est pas valide.

Valeur : 6

HRESULT_FROM_WIN32(ERROR_DEV_NOT_EXIST)
La ressource réseau ou le périphérique spécifié n’est plus disponible.

Valeur : 55

E_IMAPI_RECORDER_LOCKED
L’appareil associé à cet enregistreur lors de la dernière opération a été exclusivement verrouillé, ce qui a entraîné l’échec de cette opération.

Valeur : 0xC0AA0210

E_IMAPI_UNEXPECTED_RESPONSE_FROM_DEVICE
L’écriture a échoué, car le lecteur a retourné des informations d’erreur qui n’ont pas pu être récupérées.

Valeur : 0xC0AA0301

E_IMAPI_RECORDER_REQUIRED
La demande nécessite la sélection d’un enregistreur de disque actif.

Valeur : 0xC0AA0003

S_IMAPI_ROTATIONADJUSTED
Le type de rotation demandé n’était pas pris en charge par le lecteur et le type de rotation a été ajusté.

Valeur : 0x00AA0005

S_IMAPI_SPEEDADJUSTED
La vitesse d’écriture demandée n’était pas prise en charge par le lecteur et la vitesse a été ajustée.

Valeur : 0x00AA0004

S_IMAPI_BOTHADJUSTED
La vitesse d’écriture et le type de rotation demandés n’étaient pas pris en charge par le lecteur et ils ont tous deux été ajustés.

Valeur : 0x00AA0006

E_IMAPI_DF2DATA_RECORDER_NOT_SUPPORTED
Cet appareil ne prend pas en charge les opérations requises par ce format de disque.

Valeur : 0xC0AA0407

E_IMAPI_REQUEST_CANCELLED
La demande a été annulée.

Valeur : 0xC0AA0002

E_IMAPI_DF2DATA_WRITE_IN_PROGRESS
Une opération d’écriture est actuellement en cours.

Valeur : 0xC0AA0400

E_IMAPI_DF2DATA_STREAM_NOT_SUPPORTED
La taille de l’objet IStream fourni n’est pas valide. La taille doit être un multiple de la taille du secteur, 2048.

Valeur : 0xC0AA0403

E_IMAPI_DF2DATA_MEDIA_IS_NOT_SUPPORTED
Le type de média actuel n’est pas pris en charge.

Valeur : (HRESULT)0xC0AA0406

E_INVALIDARG
Un ou plusieurs arguments ne sont pas valides.

Valeur : 0x80070057

E_POINTER
Le pointeur n’est pas valide.

Valeur : 0x80004003

E_FAIL
Défaillance non spécifiée.

Valeur : 0x80004005

E_OUTOFMEMORY
Échec de l’allocation de la mémoire requise.

Valeur : 0x8007000E

E_NOTIMPL
Non implémenté.

Valeur : 0x80004001

Notes

Avant d’appeler cette méthode, vous devez appeler les méthodes suivantes :

Vous devez également envisager d’appeler les méthodes suivantes si leurs valeurs par défaut ne conviennent pas à votre application : Cette méthode est synchrone, ce qui signifie que le contrôle n’est pas retourné tant que l’IStream fourni n’est pas enregistré sur le média. Pour déterminer la progression de l’opération d’écriture, vous devez implémenter l’interface DDiscFormat2DataEvents . Pour obtenir des exemples qui montrent comment implémenter un gestionnaire d’événements dans un script, consultez Surveillance de la progression avec les événements.

Sur les disques enregistrés séquentiellement, l’IStream fourni est enregistré en tant que nouvelle session. Sur les disques réinscriptibles, l’IStream fourni est toujours enregistré à partir du secteur 0, mais l’objet fournissant l’interface IStream peut également fournir l’interface IBlockRangeList répertoriant les secteurs qui doivent être enregistrés. L’interface IBlockRangeList est utilisée pour éviter la réécriture de secteurs qui n’ont pas changé dans les scénarios multisession. Si l’objet qui fournit IStream ne fournit pas IBlockRangeList, il est supposé que l’ensemble de l’IStream doit être enregistré.

Configuration requise

   
Client minimal pris en charge Windows Vista, Windows XP avec SP2 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête imapi2.h

Voir aussi

DDiscFormat2DataEvents

IDiscFormat2Data

IDiscFormat2Data::CancelWrite