Méthode IDiscRecorder2Ex ::SendCommandSendDataToDevice (imapi2.h)
Envoie une commande MMC et sa mémoire tampon de données associée à l’appareil d’enregistrement.
Syntaxe
HRESULT SendCommandSendDataToDevice(
[in] BYTE *Cdb,
[in] ULONG CdbSize,
[out] BYTE [18] SenseBuffer,
[in] ULONG Timeout,
[in] BYTE *Buffer,
[in] ULONG_IMAPI2_NONZERO BufferSize
);
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.
[in] Buffer
Mémoire tampon contenant les données associées à la commande send. Ne doit pas avoir la valeur NULL.
[in] BufferSize
Taille, en octets, de la mémoire tampon de données à envoyer. Ne doit pas être égal à zéro.
Valeur retournée
S_OK ou l’une des valeurs suivantes peuvent être retournées 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 |
---|---|
|
L’appareil échoue à la commande, mais retourne des données de sens.
Valeur : 0x00AA0200 |
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 |
---|---|
|
Le pointeur n’est pas valide.
Valeur : 0x80004003 |
|
Défaillance non spécifiée.
Valeur : 0x80004005 |
|
Le lecteur ne prend pas en charge la commande GET CONFIGURATION.
Valeur : 0xC0AA020C |
|
La page de fonctionnalité demandée n’est pas prise en charge par l’appareil.
Valeur : 0xC0AA020A |
|
Impossible d’allouer la mémoire requise.
Valeur : 0x8007000E |
|
La page de fonctionnalité demandée est prise en charge, mais n’est pas marquée comme actuelle.
Valeur : 0xC0AA020B |
|
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 |
|
L’appareil a signalé des données inattendues ou non valides pour une commande.
Valeur : 0xC0AA02FF |
|
Le média est inséré à l’envers.
Valeur : 0xC0AA0204 |
|
Le lecteur a signalé qu’il est en train de se préparer. Veuillez réessayer la demande ultérieurement.
Valeur : 0xC0AA0205 |
|
Il n’y a aucun média dans l’appareil.
Valeur : 0xC0AA0202 |
|
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 |
|
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 |
|
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 |
|
Le média n’est pas compatible ou de format physique inconnu.
Valeur : 0xC0AA0203 |
|
La structure DVD n’est pas présente. Cela peut être dû à l’utilisation d’un lecteur/d’un support incompatible.
Valeur : 0xC0AA020E |
|
L’appareil a signalé que la page du mode demandé (et le type) n’est pas présent.
Valeur : 0xC0AA0201 |
|
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 |
|
Le lecteur a signalé que le média est protégé en écriture.
Valeur : 0xC0AA0209 |
|
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 |
|
Le handle spécifié n’est pas valide.
Valeur : 6 |
|
La ressource réseau ou le périphérique spécifié n’est plus disponible.
Valeur : 55 |
|
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 d’entrée, 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 |