Méthode IDiscRecorder2Ex ::SendCommandNoData (imapi2.h)
Envoie une commande MMC à l’appareil d’enregistrement. Utilisez cette fonction lorsqu’aucune mémoire tampon de données n’est envoyée ou reçue de l’appareil.
Syntaxe
HRESULT SendCommandNoData(
[in] BYTE *Cdb,
[in] ULONG CdbSize,
[out] BYTE [18] SenseBuffer,
[in] ULONG Timeout
);
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.
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 et des données de sens, 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 |