Метод 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, если вызов был выполнен успешно. В противном случае метод возвращает соответствующий код ошибки. В следующей таблице показаны некоторые из возможных кодов состояния возврата.
Код возврата | Описание |
---|---|
|
Сбой вызова из-за ошибки устройства. |
|
Недопустимый запрос устройства (например, вызов Write входного потока MIDI).
|
Комментарии
Если метод завершается успешно, он выводит одно из следующих значений вызывающему объекту с помощью параметра BytesWritten :
- То же значение, что и BytesToWrite. Это значение указывает, что методу удалось записать все байты данных BytesToWrite на устройство.
- Значение, кратное четырем, меньше , чем значение BytesToWrite. Если метод может записать некоторые, но не все данные вызывающего объекта на устройство, он должен записать число байтов, кратное четырем. Это значение указывает, что вызывающий объект должен выполнить еще один вызов метода для записи оставшихся данных.
- Ноль. Это значение указывает, что устройство слишком занято для записи каких-либо данных вызывающей стороны во время текущего вызова, но вызывающий объект должен повторить попытку позже. Драйвер мини-порта отвечает за различение занятого устройства от ошибки устройства. Метод не должен создавать бесконечные последовательности вызовов, которые всегда возвращают успех, но записывают ноль байтов.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | portcls.h (включая Portcls.h) |
IRQL | DISPATCH_LEVEL |