Metodo IDiscRecorder2Ex::SendCommandSendDataToDevice (imapi2.h)
Invia un comando MMC e il buffer di dati associato al dispositivo di registrazione.
Sintassi
HRESULT SendCommandSendDataToDevice(
[in] BYTE *Cdb,
[in] ULONG CdbSize,
[out] BYTE [18] SenseBuffer,
[in] ULONG Timeout,
[in] BYTE *Buffer,
[in] ULONG_IMAPI2_NONZERO BufferSize
);
Parametri
[in] Cdb
Pacchetto di comando da inviare al dispositivo.
[in] CdbSize
Dimensioni, in byte, del pacchetto di comando da inviare. Deve essere compreso tra 6 e 16 byte.
[out] SenseBuffer
Dati di rilevamento restituiti dal dispositivo di registrazione.
[in] Timeout
Limite di tempo, espresso in secondi, consentito al comando send di ricevere un risultato.
[in] Buffer
Buffer contenente i dati associati al comando send. Non deve essere NULL.
[in] BufferSize
Dimensioni, in byte, del buffer di dati da inviare. Non deve essere zero.
Valore restituito
S_OK o uno dei valori seguenti può essere restituito in caso di esito positivo, ma altri codici di esito positivo possono essere restituiti in seguito all'implementazione:
Codice restituito | Descrizione |
---|---|
|
Il dispositivo non riesce il comando, ma restituisce i dati di senso.
Valore: 0x00AA0200 |
I codici di errore seguenti vengono comunemente restituiti in caso di errore dell'operazione, ma non rappresentano gli unici valori di errore possibili:
Codice restituito | Descrizione |
---|---|
|
Puntatore non valido.
Valore: 0x80004003 |
|
Errore non specificato.
Valore: 0x80004005 |
|
L'unità non supporta il comando GET CONFIGURATION.
Valore: 0xC0AA020C |
|
La pagina di funzionalità richiesta non è supportata dal dispositivo.
Valore: 0xC0AA020A |
|
Impossibile allocare la memoria richiesta.
Valore: 0x8007000E |
|
La pagina di funzionalità richiesta è supportata, ma non è contrassegnata come corrente.
Valore: 0xC0AA020B |
|
Il dispositivo non è riuscito ad accettare il comando entro il periodo di timeout. Ciò può essere causato dall'immissione di uno stato incoerente del dispositivo oppure potrebbe essere necessario aumentare il valore di timeout per il comando.
Valore: 0xC0AA020D |
|
Il dispositivo ha segnalato dati imprevisti o non validi per un comando.
Valore: 0xC0AA02FF |
|
Il supporto viene inserito a capovolto.
Valore: 0xC0AA0204 |
|
L'unità ha segnalato che è in fase di preparazione. Riprovare la richiesta in un secondo momento.
Valore: 0xC0AA0205 |
|
Non sono presenti supporti nel dispositivo.
Valore: 0xC0AA0202 |
|
Il supporto è attualmente formattato. Attendere il completamento del formato prima di tentare di usare il supporto.
Valore: 0xC0AA0206 |
|
L'unità ha segnalato che sta eseguendo un'operazione a esecuzione prolungata, ad esempio il completamento di una scrittura. L'unità può essere inutilizzabile per un lungo periodo di tempo.
Valore: 0xC0AA0207 |
|
La scrittura non è riuscita perché l'unità non ha ricevuto dati abbastanza rapidamente per continuare la scrittura. Lo spostamento dei dati di origine nel computer locale, la riduzione della velocità di scrittura o l'abilitazione di un'impostazione "buffer underrun free" può risolvere questo problema.
Valore: 0xC0AA0300 |
|
Il supporto non è compatibile o con un formato fisico sconosciuto.
Valore: 0xC0AA0203 |
|
La struttura DVD non è presente. Ciò può essere causato dall'uso di unità/supporto incompatibili.
Valore: 0xC0AA020E |
|
Il dispositivo ha segnalato che la pagina in modalità richiesta (e tipo) non è presente.
Valore: 0xC0AA0201 |
|
L'unità ha segnalato che la combinazione di parametri forniti nella pagina della modalità per un comando MODE SELECT non è supportata.
Valore: 0xC0AA0208 |
|
L'unità ha segnalato che il supporto è protetto da scrittura.
Valore: 0xC0AA0209 |
|
La velocità del supporto non è compatibile con il dispositivo. Ciò può essere causato dall'uso di supporti di velocità superiori o inferiori rispetto all'intervallo di velocità supportato dal dispositivo.
Valore: 0xC0AA020F |
|
L'handle specificato non è valido.
Valore: 6 |
|
La risorsa di rete o il dispositivo specificato non sono più disponibili.
Valore: 55 |
|
Il dispositivo associato a questo registratore durante l'ultima operazione è stato bloccato esclusivamente, causando l'esito negativo di questa operazione.
Valore: 0xC0AA0210 |
Commenti
Per informazioni dettagliate sul contenuto del pacchetto di comando, sui dati di rilevamento e sul buffer dei dati di input, vedere la revisione più recente della specifica MMC in ftp://ftp.t10.org/t10/drafts/mmc5.
I comandi definiti dal client (CDB) usati con questo metodo devono avere una lunghezza compresa tra 6 e 16 byte. Inoltre, le dimensioni di ogni comando devono corrispondere alle dimensioni definite dal codice dell'operazione, come definito nella tabella seguente.
Intervallo di codice dell'operazione CDB | Gruppo CDB | Dimensioni CDB necessarie |
---|---|---|
0x00 — 0x1F | 0 | 6 byte |
0x20 — 0x3F | 1 | 10 byte |
0x40 — 0x5F | 2 | 10 byte |
0x60 — 0x7F | 3 | Applichererà i requisiti di dimensione specificati standard per questo intervallo opcode in futuro. |
0x80 — 0x9F | 4 | 16 byte |
0xA0 — 0xBF | 5 | 12 byte |
0xC0 — 0xDF | 6 | Fornitore univoco - Qualsiasi dimensione consentita |
0xE0 — 0xFF | 7 | Fornitore univoco - Qualsiasi dimensione consentita |
Alcuni dispositivi molto presto usavano opcode univoci del fornitore e pertanto alcuni opcode non possono essere convalidati in questo modo. I codici opcode seguenti sono ancora validi e verificano solo che le dimensioni siano comprese tra 6 e 16 byte:
0x02, 0x05, 0x06, 0x09, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x13, 0x14, 0x19, 0x20, 0x21, 0x22, 0x23, 0x24, 0x26, 0x27, 0x29, 0x2C, 0x2D
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista, Windows XP con SP2 [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | imapi2.h |