Partager via


IDiscRecorder2Ex ::SendCommandGetDataFromDevice, méthode (imapi2.h)

Envoie une commande MMC à l’appareil d’enregistrement demandant des données à partir de l’appareil.

Syntaxe

HRESULT SendCommandGetDataFromDevice(
  [in]  BYTE                      *Cdb,
  [in]  ULONG                     CdbSize,
  [out] BYTE [18]                 SenseBuffer,
  [in]  ULONG                     Timeout,
  [out] BYTE                      *Buffer,
  [in]  ULONG_IMAPI2_NONZERO      BufferSize,
  [out] ULONG_IMAPI2_NOT_NEGATIVE *BufferFetched
);

Paramètres

[in] Cdb

Paquet de commande à envoyer à l’appareil.

[in] CdbSize

Taille, en octets, du paquet de commande à envoyer. Doit être compris entre 6 et 16 octets.

[out] SenseBuffer

Détecter les données retournées par l’appareil d’enregistrement.

[in] Timeout

Limite de temps, en secondes, autorisée pour que la commande d’envoi reçoive un résultat.

[out] Buffer

Mémoire tampon de données allouées par l’application qui recevra les données associées à la commande d’envoi. Ne doit pas être NULL.

[in] BufferSize

Taille, en octets, de la mémoire tampon de données de la mémoire tampon . Ne doit pas être égal à zéro.

[out] BufferFetched

Taille, en octets, des données retournées dans la mémoire tampon de données.

Valeur retournée

S_OK ou l’une des valeurs suivantes peut être retournée en cas de réussite, mais d’autres codes de réussite peuvent être retournés à la suite de l’implémentation :

Code de retour Description
S_IMAPI_COMMAND_HAS_SENSE_DATA
L’appareil échoue à la commande, mais retourne des données de sens.
 

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_POINTER
Le pointeur n’est pas valide.

Valeur : 0x80004003

E_FAIL
Défaillance non spécifiée.

Valeur : 0x80004005

E_IMAPI_RECORDER_GET_CONFIGURATION_NOT_SUPPORTED
Le lecteur ne prend pas en charge la commande GET CONFIGURATION.

Valeur : 0xC0AA020C

E_IMAPI_RECORDER_NO_SUCH_FEATURE
La page de fonctionnalité demandée n’est pas prise en charge par l’appareil.

Valeur : 0xC0AA020A

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

Valeur : 0x8007000E

E_IMAPI_RECORDER_FEATURE_IS_NOT_CURRENT
La page de fonctionnalité demandée est prise en charge, mais n’est pas marquée comme actuelle.

Valeur : 0xC0AA020B

E_IMAPI_RECORDER_COMMAND_TIMEOUT
L’appareil n’a pas pu accepter la commande dans le délai imparti. Cela peut être dû au fait que l’appareil est entré dans 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 cours de préparation. Veuillez réessayer la demande ultérieurement.

Valeur : 0xC0AA0205

E_IMAPI_RECORDER_MEDIA_NO_MEDIA
Il n’y a pas de 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 effectue une opération de longue durée, telle que 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 » peuvent 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 du DVD n’est pas présente. Cela peut être dû à l’utilisation d’un lecteur/d’un moyen 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 pour 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 est incompatible 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

Remarques

Pour plus d’informations sur le contenu du paquet de commande, des données de sens et de la mémoire tampon de données de sortie, consultez la dernière révision de la spécification MMC sur ftp://ftp.t10.org/t10/drafts/mmc5.

Les commandes définies par le client (CDB) utilisées avec cette méthode doivent avoir une longueur comprise entre 6 et 16 octets. En outre, la taille de chaque commande doit correspondre à la taille définie par le code d’opération, comme défini dans le tableau suivant.

Plage de code d’opération CDB Groupe CDB Taille CDB requise
0x00 — 0x1F 0 6 octets
0x20 — 0x3F 1 10 octets
0x40 — 0x5F 2 10 octets
0x60 — 0x7F 3 Appliquera les exigences de taille spécifiées par la norme pour cette plage d’opcode à l’avenir.
0x80 — 0x9F 4 16 octets
0xA0 — 0xBF 5 12 octets
0xC0 — 0xDF 6 Fournisseur unique : toutes les tailles autorisées
0xE0 — 0xFF 7 Fournisseur unique : toutes les tailles autorisées
 

Certains appareils très tôt utilisaient des opcodes uniques au fournisseur et, par conséquent, certains opcodes ne peuvent pas être validés de cette manière. Les opcodes suivants sont toujours valides et vérifient uniquement que la taille est comprise entre 6 et 16 octets :

0x02, 0x05, 0x06, 0x09, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x13, 0x14, 0x19, 0x20, 0x21, 0x22, 0x23, 0x24, 0x26, 0x27, 0x29, 0x2C, 0x2D

Configuration requise

Condition requise Valeur
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

IDiscRecorder2Ex

IDiscRecorder2Ex ::SendCommandNoData

IDiscRecorder2Ex ::SendCommandsendDataToDevice