Compartilhar via


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

Grava o fluxo de dados no dispositivo.

Nota Para o sucesso da gravação, o tamanho do fluxo passado deve ser um múltiplo do tamanho do setor, 2048. Isso inclui operações que utilizam fluxos associados a imagens .iso não criadas pelo IMAPI.

 

Sintaxe

HRESULT Write(
  [in] IStream *data
);

Parâmetros

[in] data

Uma interface IStream do fluxo de dados a ser gravado.

Valor retornado

S_OK é retornado com êxito, mas outros códigos de êxito podem ser retornados como resultado da implementação. Os seguintes códigos de erro geralmente são retornados em caso de falha na operação, mas não representam os únicos valores de erro possíveis:

Código de retorno Descrição
E_IMAPI_RECORDER_COMMAND_TIMEOUT
O dispositivo não aceitou o comando dentro do período de tempo limite. Isso pode ser causado pelo dispositivo ter inserido um estado inconsistente ou o valor de tempo limite para o comando pode precisar ser aumentado.

Valor: 0xC0AA020D

E_IMAPI_RECORDER_INVALID_RESPONSE_FROM_DEVICE
O dispositivo relatou dados inesperados ou inválidos para um comando.

Valor: 0xC0AA02FF

E_IMAPI_RECORDER_MEDIA_UPSIDE_DOWN
A mídia é inserida de cabeça para baixo.

Valor: 0xC0AA0204

E_IMAPI_RECORDER_MEDIA_BECOMING_READY
A unidade informou que está em processo de preparação. Tente a solicitação novamente mais tarde.

Valor: 0xC0AA0205

E_IMAPI_RECORDER_MEDIA_NO_MEDIA
Não há mídia no dispositivo.

Valor: 0xC0AA0202

E_IMAPI_RECORDER_MEDIA_FORMAT_IN_PROGRESS
A mídia está sendo formatada no momento. Aguarde a conclusão do formato antes de tentar usar a mídia.

Valor: 0xC0AA0206

E_IMAPI_RECORDER_MEDIA_BUSY
A unidade informou que está executando uma operação de longa execução, como terminar uma gravação. A unidade pode ser inutilizável por um longo período de tempo.

Valor: 0xC0AA0207

E_IMAPI_LOSS_OF_STREAMING
A gravação falhou porque a unidade não recebeu dados rapidamente o suficiente para continuar gravando. Mover os dados de origem para o computador local, reduzir a velocidade de gravação ou habilitar uma configuração de "buffer sem execução livre" pode resolve esse problema.

Valor: 0xC0AA0300

E_IMAPI_RECORDER_MEDIA_INCOMPATIBLE
A mídia não é compatível ou de formato físico desconhecido.

Valor: 0xC0AA0203

E_IMAPI_RECORDER_DVD_STRUCTURE_NOT_PRESENT
A estrutura do DVD não está presente. Isso pode ser causado por uma unidade/meio incompatível usada.

Valor: 0xC0AA020E

E_IMAPI_RECORDER_NO_SUCH_MODE_PAGE
O dispositivo informou que a página do modo solicitado (e o tipo) não está presente.

Valor: 0xC0AA0201

E_IMAPI_RECORDER_INVALID_MODE_PARAMETERS
A unidade informou que não havia suporte para a combinação de parâmetros fornecidos na página de modo para um comando MODE SELECT.

Valor: 0xC0AA0208

E_IMAPI_RECORDER_MEDIA_WRITE_PROTECTED
A unidade informou que a mídia está protegida por gravação.

Valor: 0xC0AA0209

E_IMAPI_RECORDER_MEDIA_SPEED_MISMATCH
A velocidade da mídia é incompatível com o dispositivo. Isso pode ser causado pelo uso de mídia de velocidade maior ou menor do que o intervalo de velocidades com suporte do dispositivo.

Valor: 0xC0AA020F

HRESULT_FROM_WIN32(ERROR_INVALID_HANDLE)
O identificador especificado é inválido.

Valor: 6

HRESULT_FROM_WIN32(ERROR_DEV_NOT_EXIST)
O recurso de rede ou dispositivo especificado não está mais disponível.

Valor: 55

E_IMAPI_RECORDER_LOCKED
O dispositivo associado a esse gravador durante a última operação foi bloqueado exclusivamente, fazendo com que essa operação falhasse.

Valor: 0xC0AA0210

E_IMAPI_UNEXPECTED_RESPONSE_FROM_DEVICE
A gravação falhou porque a unidade retornou informações de erro das quais não foi possível recuperar.

Valor: 0xC0AA0301

E_IMAPI_RECORDER_REQUIRED
A solicitação requer que um gravador de disco atual seja selecionado.

Valor: 0xC0AA0003

S_IMAPI_ROTATIONADJUSTED
Não havia suporte para o tipo de rotação solicitado pela unidade e o tipo de rotação foi ajustado.

Valor: 0x00AA0005

S_IMAPI_SPEEDADJUSTED
A velocidade de gravação solicitada não foi suportada pela unidade e a velocidade foi ajustada.

Valor: 0x00AA0004

S_IMAPI_BOTHADJUSTED
Não havia suporte para o tipo de rotação e velocidade de gravação solicitados pela unidade e ambos foram ajustados.

Valor: 0x00AA0006

E_IMAPI_DF2DATA_RECORDER_NOT_SUPPORTED
Este dispositivo não dá suporte às operações exigidas por este formato de disco.

Valor: 0xC0AA0407

E_IMAPI_REQUEST_CANCELLED
A solicitação foi cancelada.

Valor: 0xC0AA0002

E_IMAPI_DF2DATA_WRITE_IN_PROGRESS
Atualmente, há uma operação de gravação em andamento.

Valor: 0xC0AA0400

E_IMAPI_DF2DATA_STREAM_NOT_SUPPORTED
O tamanho do objeto IStream fornecido é inválido. O tamanho deve ser um múltiplo do tamanho do setor, 2048.

Valor: 0xC0AA0403

E_IMAPI_DF2DATA_MEDIA_IS_NOT_SUPPORTED
O tipo de mídia atual não tem suporte.

Valor: (HRESULT)0xC0AA0406

E_INVALIDARG
Um ou mais argumentos não são válidos.

Valor: 0x80070057

E_POINTER
O ponteiro não é válido.

Valor: 0x80004003

E_FAIL
Falha não especificada.

Valor: 0x80004005

E_OUTOFMEMORY
Falha ao alocar a memória necessária.

Valor: 0x8007000E

E_NOTIMPL
Não implementado.

Valor: 0x80004001

Comentários

Antes de chamar esse método, você deve chamar os seguintes métodos:

Você também deve considerar chamar os seguintes métodos se seus valores padrão não forem apropriados para seu aplicativo: Esse método é síncrono, o que significa que o controle não é retornado até que o IStream fornecido seja gravado na mídia. Para determinar o progresso da operação de gravação, você deve implementar a interface DDiscFormat2DataEvents . Para obter exemplos que mostram como implementar um manipulador de eventos em um script, consulte Monitoramento de progresso com eventos.

Em discos gravados sequencialmente, o IStream fornecido é gravado como uma nova sessão. Em discos rewritable, o IStream fornecido sempre é registrado a partir do setor 0, mas o objeto que fornece a interface IStream também pode fornecer a interface IBlockRangeList listando os setores que precisam ser registrados. A interface IBlockRangeList é usada para evitar a reescrita de setores que não foram alterados em cenários de multissessão. Se o objeto que fornece IStream não fornecer IBlockRangeList, supõe-se que todo o IStream precisa ser gravado.

Requisitos

   
Cliente mínimo com suporte Windows Vista, Windows XP com SP2 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho imapi2.h

Confira também

DDiscFormat2DataEvents

IDiscFormat2Data

IDiscFormat2Data::CancelWrite