Compartir a través de


Método IDiscFormat2Data::Write (imapi2.h)

Escribe el flujo de datos en el dispositivo.

Nota Para que la escritura se haya realizado correctamente, el tamaño de la secuencia pasada debe ser un múltiplo del tamaño del sector, 2048. Esto incluye las operaciones que usan flujos asociados a imágenes .iso no creadas por IMAPI.

 

Sintaxis

HRESULT Write(
  [in] IStream *data
);

Parámetros

[in] data

Interfaz IStream del flujo de datos que se va a escribir.

Valor devuelto

S_OK se devuelve correctamente, pero se pueden devolver otros códigos de éxito como resultado de la implementación. 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
E_IMAPI_RECORDER_COMMAND_TIMEOUT
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

E_IMAPI_RECORDER_INVALID_RESPONSE_FROM_DEVICE
El dispositivo notificó datos inesperados o no válidos para un comando.

Valor: 0xC0AA02FF

E_IMAPI_RECORDER_MEDIA_UPSIDE_DOWN
El medio se inserta al revés.

Valor: 0xC0AA0204

E_IMAPI_RECORDER_MEDIA_BECOMING_READY
La unidad informó de que está en proceso de preparación. Vuelva a intentar la solicitud más tarde.

Valor: 0xC0AA0205

E_IMAPI_RECORDER_MEDIA_NO_MEDIA
No hay ningún medio en el dispositivo.

Valor: 0xC0AA0202

E_IMAPI_RECORDER_MEDIA_FORMAT_IN_PROGRESS
El medio está siendo formateado actualmente. Espere a que se complete el formato antes de intentar usar el medio.

Valor: 0xC0AA0206

E_IMAPI_RECORDER_MEDIA_BUSY
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

E_IMAPI_LOSS_OF_STREAMING
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

E_IMAPI_RECORDER_MEDIA_INCOMPATIBLE
Los medios no son compatibles ni tienen un formato físico desconocido.

Valor: 0xC0AA0203

E_IMAPI_RECORDER_DVD_STRUCTURE_NOT_PRESENT
La estructura de DVD no está presente. Esto puede deberse a que se usa una unidad o medio incompatibles.

Valor: 0xC0AA020E

E_IMAPI_RECORDER_NO_SUCH_MODE_PAGE
El dispositivo informó de que la página de modo solicitado (y tipo) no está presente.

Valor: 0xC0AA0201

E_IMAPI_RECORDER_INVALID_MODE_PARAMETERS
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

E_IMAPI_RECORDER_MEDIA_WRITE_PROTECTED
La unidad informó de que el medio está protegido por escritura.

Valor: 0xC0AA0209

E_IMAPI_RECORDER_MEDIA_SPEED_MISMATCH
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

HRESULT_FROM_WIN32(ERROR_INVALID_HANDLE)
El identificador especificado no es válido.

Valor: 6

HRESULT_FROM_WIN32(ERROR_DEV_NOT_EXIST)
El recurso de red o el dispositivo especificados ya no se encuentran disponibles.

Valor: 55

E_IMAPI_RECORDER_LOCKED
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

E_IMAPI_UNEXPECTED_RESPONSE_FROM_DEVICE
Error de escritura porque la unidad devolvió información de error de la que no se pudo recuperar.

Valor: 0xC0AA0301

E_IMAPI_RECORDER_REQUIRED
La solicitud requiere que se seleccione una grabadora de disco actual.

Valor: 0xC0AA0003

S_IMAPI_ROTATIONADJUSTED
El tipo de rotación solicitado no era compatible con la unidad y se ajustaba el tipo de rotación.

Valor: 0x00AA0005

S_IMAPI_SPEEDADJUSTED
La velocidad de escritura solicitada no era compatible con la unidad y la velocidad se ajustaba.

Valor: 0x00AA0004

S_IMAPI_BOTHADJUSTED
La velocidad de escritura solicitada y el tipo de rotación no fueron compatibles con la unidad y ambos se ajustaron.

Valor: 0x00AA0006

E_IMAPI_DF2DATA_RECORDER_NOT_SUPPORTED
Este dispositivo no admite las operaciones requeridas por este formato de disco.

Valor: 0xC0AA0407

E_IMAPI_REQUEST_CANCELLED
Se ha cancelado la solicitud.

Valor: 0xC0AA0002

E_IMAPI_DF2DATA_WRITE_IN_PROGRESS
Actualmente hay una operación de escritura en curso.

Valor: 0xC0AA0400

E_IMAPI_DF2DATA_STREAM_NOT_SUPPORTED
El tamaño del objeto IStream proporcionado no es válido. El tamaño debe ser un múltiplo del tamaño del sector, 2048.

Valor: 0xC0AA0403

E_IMAPI_DF2DATA_MEDIA_IS_NOT_SUPPORTED
El tipo de medio actual no es compatible.

Valor: (HRESULT)0xC0AA0406

E_INVALIDARG
Uno o varios argumentos no son válidos.

Valor: 0x80070057

E_POINTER
El puntero no es válido.

Valor: 0x80004003

E_FAIL
Error no especificado.

Valor: 0x80004005

E_OUTOFMEMORY
No se pudo asignar la memoria necesaria.

Valor: 0x8007000E

E_NOTIMPL
Sin implementar.

Valor: 0x80004001

Comentarios

Antes de llamar a este método, debe llamar a los métodos siguientes:

También debe considerar la posibilidad de llamar a los métodos siguientes si sus valores predeterminados no son adecuados para la aplicación: Este método es sincrónico, lo que significa que el control no se devuelve hasta que el IStream proporcionado se registra en el medio. Para determinar el progreso de la operación de escritura, debe implementar la interfaz DDiscFormat2DataEvents . Para obtener ejemplos que muestran cómo implementar un controlador de eventos en un script, consulte Supervisión del progreso con eventos.

En discos grabados secuencialmente, el IStream proporcionado se graba como una nueva sesión. En los discos reescritibles, el IStream proporcionado siempre se graba a partir del sector 0, pero el objeto que proporciona la interfaz IStream también puede proporcionar la interfaz IBlockRangeList que enumera los sectores que deben grabarse. La interfaz IBlockRangeList se usa para evitar la reescritura de sectores que no han cambiado en escenarios de multisesión. Si el objeto que proporciona IStream no proporciona IBlockRangeList, se supone que todo el IStream debe grabarse.

Requisitos

   
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

Consulte también

DDiscFormat2DataEvents

IDiscFormat2Data

IDiscFormat2Data::CancelWrite