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 |
---|---|
|
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 |
---|---|
|
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 |
|
Échec de l’allocation de 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 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 |
|
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 cours de préparation. Veuillez réessayer la demande ultérieurement.
Valeur : 0xC0AA0205 |
|
Il n’y a pas de 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 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 |
|
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 |
|
Le média n’est pas compatible ou de format physique inconnu.
Valeur : 0xC0AA0203 |
|
La structure du DVD n’est pas présente. Cela peut être dû à l’utilisation d’un lecteur/d’un moyen 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 pour 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 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 |
|
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 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 |