Freigeben über


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
S_IMAPI_COMMAND_HAS_SENSE_DATA
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
E_POINTER
Der Zeiger ist ungültig.

Wert: 0x80004003

E_FAIL
Unspezifizierter Fehler.

Wert: 0x80004005

E_IMAPI_RECORDER_GET_CONFIGURATION_NOT_SUPPORTED
Das Laufwerk unterstützt den Befehl GET CONFIGURATION nicht.

Wert: 0xC0AA020C

E_IMAPI_RECORDER_NO_SUCH_FEATURE
Die angeforderte Featureseite wird vom Gerät nicht unterstützt.

Wert: 0xC0AA020A

E_OUTOFMEMORY
Fehler beim Zuweisen des erforderlichen Arbeitsspeichers.

Wert: 0x8007000E

E_IMAPI_RECORDER_FEATURE_IS_NOT_CURRENT
Die angeforderte Featureseite wird unterstützt, aber nicht als aktuell markiert.

Wert: 0xC0AA020B

E_IMAPI_RECORDER_COMMAND_TIMEOUT
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

E_IMAPI_RECORDER_INVALID_RESPONSE_FROM_DEVICE
Das Gerät hat unerwartete oder ungültige Daten für einen Befehl gemeldet.

Wert: 0xC0AA02FF

E_IMAPI_RECORDER_MEDIA_UPSIDE_DOWN
Die Medien werden kopfüber eingefügt.

Wert: 0xC0AA0204

E_IMAPI_RECORDER_MEDIA_BECOMING_READY
Das Laufwerk hat gemeldet, dass es gerade bereit ist. Versuchen Sie die Anforderung später erneut.

Wert: 0xC0AA0205

E_IMAPI_RECORDER_MEDIA_NO_MEDIA
Das Gerät enthält keine Medien.

Wert: 0xC0AA0202

E_IMAPI_RECORDER_MEDIA_FORMAT_IN_PROGRESS
Die Medien werden derzeit formatiert. Warten Sie, bis das Format abgeschlossen ist, bevor Sie versuchen, die Medien zu verwenden.

Wert: 0xC0AA0206

E_IMAPI_RECORDER_MEDIA_BUSY
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

E_IMAPI_LOSS_OF_STREAMING
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

E_IMAPI_RECORDER_MEDIA_INCOMPATIBLE
Die Medien sind nicht kompatibel oder haben kein unbekanntes physisches Format.

Wert: 0xC0AA0203

E_IMAPI_RECORDER_DVD_STRUCTURE_NOT_PRESENT
Die DVD-Struktur ist nicht vorhanden. Dies kann durch inkompatibles Laufwerk/Medium verursacht werden.

Wert: 0xC0AA020E

E_IMAPI_RECORDER_NO_SUCH_MODE_PAGE
Das Gerät hat gemeldet, dass die angeforderte Modusseite (und der Typ) nicht vorhanden sind.

Wert: 0xC0AA0201

E_IMAPI_RECORDER_INVALID_MODE_PARAMETERS
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

E_IMAPI_RECORDER_MEDIA_WRITE_PROTECTED
Das Laufwerk meldete, dass das Medium schreibgeschützt ist.

Wert: 0xC0AA0209

E_IMAPI_RECORDER_MEDIA_SPEED_MISMATCH
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

HRESULT_FROM_WIN32(ERROR_INVALID_HANDLE)
Das angegebene Handle ist ungültig.

Wert: 6

HRESULT_FROM_WIN32(ERROR_DEV_NOT_EXIST)
Die angegebene Netzwerkressource oder das angegebene Gerät ist nicht mehr verfügbar.

Wert: 55

E_IMAPI_RECORDER_LOCKED
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

Weitere Informationen

IDiscRecorder2Ex

IDiscRecorder2Ex::SendCommandNoData

IDiscRecorder2Ex::SendCommandSendDataToDevice