Share via


Método IMiniportMidiStream::Write (portcls.h)

O Write método grava dados em um fluxo MIDI de saída.

Sintaxe

NTSTATUS Write(
  [in]  PVOID  BufferAddress,
  [in]  ULONG  BytesToWrite,
  [out] PULONG BytesWritten
);

Parâmetros

[in] BufferAddress

Ponteiro para um buffer alocado pelo chamador que contém os dados MIDI de saída

[in] BytesToWrite

Especifica o número de bytes de dados MIDI contidos no buffer para o qual BufferAddress aponta.

[out] BytesWritten

Ponteiro de saída para uma variável alocada pelo chamador na qual o método grava uma contagem especificando o número real de bytes que o método conseguiu gravar no dispositivo de saída MIDI. Para obter mais informações, consulte a seção Comentários a seguir.

Retornar valor

Write retornará STATUS_SUCCESS se a chamada tiver sido bem-sucedida. Caso contrário, o método retorna um código de erro apropriado. A tabela a seguir mostra alguns dos possíveis códigos de retorno status.

Código de retorno Descrição
STATUS_IO_DEVICE_ERROR
A chamada falhou devido a um erro de dispositivo.
STATUS_INVALID_DEVICE_REQUEST
Solicitação de dispositivo inválida (por exemplo, chamando Write em um fluxo de entrada MIDI).

Comentários

Se o método for bem-sucedido, ele gerará um dos seguintes valores para o chamador por meio do parâmetro BytesWritten :

  • O mesmo valor que BytesToWrite. Esse valor indica que o método conseguiu gravar todos os bytes BytesToWrite de dados no dispositivo.
  • Um múltiplo de quatro que é menor que BytesToWrite. Se o método for capaz de gravar alguns, mas não todos os dados do chamador no dispositivo, ele deverá escrever um número de bytes que seja um múltiplo de quatro. Esse valor indica que o chamador deve fazer outra chamada para o método para gravar os dados restantes.
  • Zero. Esse valor indica que o dispositivo está muito ocupado para gravar qualquer um dos dados do chamador durante a chamada atual, mas que o chamador deve tentar novamente mais tarde. O driver de miniporte é responsável por distinguir um dispositivo ocupado de um erro de dispositivo. O método deve evitar gerar uma sucessão infinita de chamadas que sempre retornam êxito, mas gravam zero bytes.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho portcls.h (inclua Portcls.h)
IRQL DISPATCH_LEVEL

Confira também

IMiniportMidiStream

IMiniportMidiStream::Read