IDiscRecorder2Ex::SendCommandGetDataFromDevice-Methode (imapi2.h)
Sendet einen MMC-Befehl an das Aufzeichnungsgerät, das Daten vom Gerät anfordert.
Syntax
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
);
Parameter
[in] Cdb
Befehlspaket, das an das Gerät gesendet werden soll.
[in] CdbSize
Größe des zu sendenden Befehlspakets in Bytes. Muss zwischen 6 und 16 Bytes sein.
[out] SenseBuffer
Vom Aufzeichnungsgerät zurückgegebene Sense-Daten.
[in] Timeout
Das Zeitlimit in Sekunden ist zulässig, damit der Befehl senden ein Ergebnis empfängt.
[out] Buffer
Anwendungsseitig zugewiesener Datenpuffer, der Daten empfängt, die dem Befehl "senden" zugeordnet sind. Darf nicht NULL sein.
[in] BufferSize
Größe des Pufferdatenpuffers in Bytes. Darf nicht 0 sein.
[out] BufferFetched
Größe der im Pufferdatenpuffer zurückgegebenen Daten in Bytes.
Rückgabewert
S_OK oder einer der folgenden Werte kann bei Erfolg zurückgegeben werden, aber andere Erfolgscodes können als Ergebnis der Implementierung zurückgegeben werden:
Rückgabecode | Beschreibung |
---|---|
|
Das Gerät schlägt den Befehl fehl, gibt aber Sinndaten zurück. |
Die folgenden Fehlercodes werden häufig bei Vorgangsfehlern zurückgegeben, stellen aber nicht die einzigen möglichen Fehlerwerte dar:
Rückgabecode | Beschreibung |
---|---|
|
Der Zeiger ist ungültig.
Wert: 0x80004003 |
|
Unspezifizierter Fehler.
Wert: 0x80004005 |
|
Das Laufwerk unterstützt den Befehl GET CONFIGURATION nicht.
Wert: 0xC0AA020C |
|
Die angeforderte Featureseite wird vom Gerät nicht unterstützt.
Wert: 0xC0AA020A |
|
Fehler beim Zuweisen des erforderlichen Arbeitsspeichers.
Wert: 0x8007000E |
|
Die angeforderte Featureseite wird unterstützt, aber nicht als aktuell markiert.
Wert: 0xC0AA020B |
|
Das Gerät konnte den Befehl innerhalb des Timeoutzeitraums nicht annehmen. Dies kann dadurch verursacht werden, dass das Gerät einen inkonsistenten Zustand eingegeben hat, oder der Timeoutwert für den Befehl muss möglicherweise erhöht werden.
Wert: 0xC0AA020D |
|
Das Gerät hat unerwartete oder ungültige Daten für einen Befehl gemeldet.
Wert: 0xC0AA02FF |
|
Die Medien werden kopfüber eingefügt.
Wert: 0xC0AA0204 |
|
Das Laufwerk hat gemeldet, dass es gerade bereit ist. Versuchen Sie die Anforderung später erneut.
Wert: 0xC0AA0205 |
|
Das Gerät enthält keine Medien.
Wert: 0xC0AA0202 |
|
Die Medien werden derzeit formatiert. Warten Sie, bis das Format abgeschlossen ist, bevor Sie versuchen, die Medien zu verwenden.
Wert: 0xC0AA0206 |
|
Das Laufwerk hat gemeldet, dass es einen Vorgang mit langer Ausführung ausführt, z. B. das Beenden eines Schreibvorgangs. Das Laufwerk kann für einen längeren Zeitraum unbrauchbar sein.
Wert: 0xC0AA0207 |
|
Fehler beim Schreiben, da das Laufwerk daten nicht schnell genug empfangen hat, um mit dem Schreiben fortzufahren. Wenn Sie die Quelldaten auf den lokalen Computer verschieben, die Schreibgeschwindigkeit verringern oder die Einstellung "Pufferunterlauf frei" aktivieren, kann dieses Problem behoben werden.
Wert: 0xC0AA0300 |
|
Die Medien sind nicht kompatibel oder haben kein unbekanntes physisches Format.
Wert: 0xC0AA0203 |
|
Die DVD-Struktur ist nicht vorhanden. Dies kann durch inkompatibles Laufwerk/Medium verursacht werden.
Wert: 0xC0AA020E |
|
Das Gerät hat gemeldet, dass die angeforderte Modusseite (und der Typ) nicht vorhanden sind.
Wert: 0xC0AA0201 |
|
Das Laufwerk meldete, dass die Kombination von Parametern, die auf der Modusseite für einen MODUS SELECT-Befehl bereitgestellt wurden, nicht unterstützt wurde.
Wert: 0xC0AA0208 |
|
Das Laufwerk meldete, dass das Medium schreibgeschützt ist.
Wert: 0xC0AA0209 |
|
Die Geschwindigkeit des Mediums ist mit dem Gerät nicht kompatibel. Dies kann durch die Verwendung von Medien mit höherer oder niedrigerer Geschwindigkeit als der vom Gerät unterstützte Geschwindigkeitsbereich verursacht werden.
Wert: 0xC0AA020F |
|
Das angegebene Handle ist ungültig.
Wert: 6 |
|
Die angegebene Netzwerkressource oder das angegebene Gerät ist nicht mehr verfügbar.
Wert: 55 |
|
Das gerät, das diesem Recorder während des letzten Vorgangs zugeordnet ist, wurde ausschließlich gesperrt, sodass dieser Vorgang fehlgeschlagen ist.
Wert: 0xC0AA0210 |
Hinweise
Ausführliche Informationen zum Inhalt des Befehlspakets, der Sense-Daten und des Ausgabedatenpuffers finden Sie in der neuesten Überarbeitung der MMC-Spezifikation unter ftp://ftp.t10.org/t10/drafts/mmc5.
Clientdefinierte Befehle (CDBs), die mit dieser Methode verwendet werden, müssen zwischen 6 und 16 Bytes lang sein. Darüber hinaus muss die Größe der einzelnen Befehle mit der Größe übereinstimmen, die durch den Vorgangscode definiert wird, wie in der folgenden Tabelle definiert.
CDB-Vorgangscodebereich | CDB-Gruppe | Erforderliche CDB-Größe |
---|---|---|
0x00 – 0x1F | 0 | 6 Byte |
0x20 – 0x3F | 1 | 10 Bytes |
0x40 – 0x5F | 2 | 10 Bytes |
0x60 – 0x7F | 3 | Erzwingt in Zukunft standardspezifische Größenanforderungen für diesen Opcodebereich. |
0x80 – 0x9F | 4 | 16 Bytes |
0xA0 – 0xBF | 5 | 12 Bytes |
0xC0 – 0xDF | 6 | Vendor Unique – Beliebige Zulässige Größe |
0xE0 – 0xFF | 7 | Vendor Unique – Beliebige Zulässige Größe |
Einige sehr frühe Geräte verwendeten herstellerspezifische Opcodes, und daher können einige Opcodes nicht auf diese Weise überprüft werden. Die folgenden Opcodes sind weiterhin gültig und überprüfen nur, ob die Größe zwischen 6 und 16 Bytes liegt:
0x02, 0x05, 0x06, 0x09, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x13, 0x14, 0x19, 0x20, 0x21, 0x22, 0x23, 0x24, 0x26, 0x27, 0x29, 0x2C, 0x2D
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista, Windows XP mit SP2 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | imapi2.h |