Método IDiscRecorder2Ex::SendCommandNoData (imapi2.h)
Envía un comando MMC al dispositivo de grabación. Use esta función cuando no se envíe ningún búfer de datos a ni se reciba desde el dispositivo.
Sintaxis
HRESULT SendCommandNoData(
[in] BYTE *Cdb,
[in] ULONG CdbSize,
[out] BYTE [18] SenseBuffer,
[in] ULONG Timeout
);
Parámetros
[in] Cdb
Paquete de comandos que se va a enviar al dispositivo.
[in] CdbSize
Tamaño, en bytes, del paquete de comandos que se va a enviar. Debe tener entre 6 y 16 bytes.
[out] SenseBuffer
Detectar datos devueltos por el dispositivo de grabación.
[in] Timeout
Límite de tiempo, en segundos, permitido para que el comando de envío reciba un resultado.
Valor devuelto
S_OK o uno de los siguientes valores se pueden devolver correctamente, pero se pueden devolver otros códigos de operación correcta como resultado de la implementación:
Código devuelto | Descripción |
---|---|
|
El dispositivo produce un error en el comando, pero devuelve datos de sentido.
Valor: 0x00AA0200 |
Los siguientes códigos de error se devuelven normalmente en caso de error de operación, pero no representan los únicos valores de error posibles:
Código devuelto | Descripción |
---|---|
|
El puntero no es válido.
Valor: 0x80004003 |
|
Error no especificado.
Valor: 0x80004005 |
|
La unidad no admite el comando GET CONFIGURATION.
Valor: 0xC0AA020C |
|
El dispositivo no admite la página de características solicitada.
Valor: 0xC0AA020A |
|
No se pudo asignar la memoria necesaria.
Valor: 0x8007000E |
|
Se admite la página de características solicitada, pero no está marcada como actual.
Valor: 0xC0AA020B |
|
El dispositivo no pudo aceptar el comando dentro del período de tiempo de espera. Esto puede deberse a que el dispositivo ha entrado en un estado incoherente o es posible que sea necesario aumentar el valor de tiempo de espera del comando.
Valor: 0xC0AA020D |
|
El dispositivo notificó datos inesperados o no válidos para un comando.
Valor: 0xC0AA02FF |
|
El medio se inserta al revés.
Valor: 0xC0AA0204 |
|
La unidad informó de que está en proceso de preparación. Vuelva a intentar la solicitud más tarde.
Valor: 0xC0AA0205 |
|
No hay ningún medio en el dispositivo.
Valor: 0xC0AA0202 |
|
El medio está siendo formateado actualmente. Espere a que se complete el formato antes de intentar usar el medio.
Valor: 0xC0AA0206 |
|
La unidad informó de que está realizando una operación de ejecución prolongada, como finalizar una escritura. La unidad puede ser inutilizable durante un largo período de tiempo.
Valor: 0xC0AA0207 |
|
Error de escritura porque la unidad no recibió datos lo suficientemente rápido como para continuar escribiendo. Si se mueven los datos de origen al equipo local, se reduce la velocidad de escritura o se habilita una configuración de "búfer bajo ejecución libre" puede resolver este problema.
Valor: 0xC0AA0300 |
|
Los medios no son compatibles ni tienen un formato físico desconocido.
Valor: 0xC0AA0203 |
|
La estructura de DVD no está presente. Esto puede deberse a que se usa una unidad o medio incompatibles.
Valor: 0xC0AA020E |
|
El dispositivo informó de que la página de modo solicitado (y tipo) no está presente.
Valor: 0xC0AA0201 |
|
La unidad notificó que no se admitía la combinación de parámetros proporcionados en la página de modo para un comando MODE SELECT.
Valor: 0xC0AA0208 |
|
La unidad informó de que el medio está protegido por escritura.
Valor: 0xC0AA0209 |
|
La velocidad del medio no es compatible con el dispositivo. Esto puede deberse al uso de medios de mayor o menor velocidad que el intervalo de velocidades compatibles con el dispositivo.
Valor: 0xC0AA020F |
|
El identificador especificado no es válido.
Valor: 6 |
|
El recurso de red o el dispositivo especificados ya no se encuentran disponibles.
Valor: 55 |
|
El dispositivo asociado a esta grabadora durante la última operación se ha bloqueado exclusivamente, lo que hace que se produzca un error en esta operación.
Valor: 0xC0AA0210 |
Comentarios
Para obtener más información sobre el contenido del paquete de comandos y los datos de detección, consulte la revisión más reciente de la especificación mmC en ftp://ftp.t10.org/t10/drafts/mmc5.
Los comandos definidos por el cliente (CDB) que se usan con este método deben tener entre 6 y 16 bytes de longitud. Además, el tamaño de cada comando debe coincidir con el tamaño definido por el código de operación tal y como se define en la tabla siguiente.
Intervalo de código de operación de CDB | Grupo CDB | Tamaño de CDB requerido |
---|---|---|
0x00: 0x1F | 0 | 6 bytes |
0x20: 0x3F | 1 | 10 bytes |
0x40: 0x5F | 2 | 10 bytes |
0x60: 0x7F | 3 | Aplicará los requisitos de tamaño especificados estándar para este intervalo de código de operación en el futuro. |
0x80: 0x9F | 4 | 16 bytes |
0xA0: 0xBF | 5 | 12 bytes |
0xC0: 0xDF | 6 | Proveedor único: cualquier tamaño permitido |
0xE0: 0xFF | 7 | Proveedor único: cualquier tamaño permitido |
Algunos dispositivos muy tempranos usaron códigos de operación únicos del proveedor y, por lo tanto, algunos códigos de operación no se pueden validar de esta manera. Los siguientes códigos de operación siguen siendo válidos y solo comprueban que el tamaño está comprendido entre 6 y 16 bytes:
0x02, 0x05, 0x06, 0x09, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x13, 0x14, 0x19, 0x20, 0x21, 0x22, 0x23, 0x24, 0x26, 0x27, 0x29, 0x2C, 0x2D
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista, Windows XP con SP2 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | imapi2.h |