Поделиться через


Метод IMiniportMidiStream::Write (portcls.h)

Метод Write записывает данные в исходящий поток MIDI.

Синтаксис

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

Параметры

[in] BufferAddress

Указатель на буфер, выделенный вызывающим объектом, который содержит исходящие данные MIDI

[in] BytesToWrite

Указывает количество байтов данных MIDI, содержащихся в буфере, на который указывает BufferAddress .

[out] BytesWritten

Выходной указатель на переменную, выделенную вызывающим объектом, в которую метод записывает число, указывающее фактическое количество байтов, которые метод успешно записывает на устройство вывода MIDI. Дополнительные сведения см. в разделе "Примечания".

Возвращаемое значение

Write возвращает STATUS_SUCCESS, если вызов был выполнен успешно. В противном случае метод возвращает соответствующий код ошибки. В следующей таблице показаны некоторые из возможных кодов состояния возврата.

Код возврата Описание
STATUS_IO_DEVICE_ERROR
Сбой вызова из-за ошибки устройства.
STATUS_INVALID_DEVICE_REQUEST
Недопустимый запрос устройства (например, вызов Write входного потока MIDI).

Комментарии

Если метод завершается успешно, он выводит одно из следующих значений вызывающему объекту с помощью параметра BytesWritten :

  • То же значение, что и BytesToWrite. Это значение указывает, что методу удалось записать все байты данных BytesToWrite на устройство.
  • Значение, кратное четырем, меньше , чем значение BytesToWrite. Если метод может записать некоторые, но не все данные вызывающего объекта на устройство, он должен записать число байтов, кратное четырем. Это значение указывает, что вызывающий объект должен выполнить еще один вызов метода для записи оставшихся данных.
  • Ноль. Это значение указывает, что устройство слишком занято для записи каких-либо данных вызывающей стороны во время текущего вызова, но вызывающий объект должен повторить попытку позже. Драйвер мини-порта отвечает за различение занятого устройства от ошибки устройства. Метод не должен создавать бесконечные последовательности вызовов, которые всегда возвращают успех, но записывают ноль байтов.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть portcls.h (включая Portcls.h)
IRQL DISPATCH_LEVEL

См. также раздел

IMiniportMidiStream

IMiniportMidiStream::Read