IMiniportMidiStream::Write 方法 (portcls.h)

方法 Write 将数据写入传出 MIDI 流。

语法

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

参数

[in] BufferAddress

指向调用方分配的缓冲区的指针,该缓冲区包含传出 MIDI 数据

[in] BytesToWrite

指定 BufferAddress 指向的缓冲区中包含的 MIDI 数据的字节数。

[out] BytesWritten

指向调用方分配的变量的输出指针,该方法在其中写入计数,指定该方法成功写入 MIDI 输出设备的实际字节数。 有关更多信息,请参见下面的“备注”部分。

返回值

Write 如果调用成功,则返回STATUS_SUCCESS。 否则,该方法将返回相应的错误代码。 下表显示了一些可能的返回状态代码。

返回代码 说明
STATUS_IO_DEVICE_ERROR
由于设备错误,调用失败。
STATUS_INVALID_DEVICE_REQUEST
无效的设备请求 (例如,在 MIDI 输入流上调用 Write) 。

注解

如果方法成功,它将通过 BytesWritten 参数将以下值之一输出给调用方:

  • BytesToWrite 相同的值。 此值指示 方法已成功将所有 BytesToWrite 字节的数据写入设备。
  • 小于 BytesToWrite 的 4 的倍数。 如果 方法能够将调用方的某些数据(但不是全部)写入设备,则它应写入 4 个字节的倍数。 此值指示调用方应对 方法进行另一次调用以写入剩余数据。
  • Zero。 此值指示设备在当前调用期间太忙,无法写入调用方的任何数据,但调用方应稍后重试。 微型端口驱动程序负责区分繁忙设备与设备错误。 方法应避免生成无休止的连续调用,这些调用始终返回成功但写入零个字节。

要求

要求
目标平台 通用
标头 portcls.h (包括 Portcls.h)
IRQL DISPATCH_LEVEL

另请参阅

IMiniportMidiStream

IMiniportMidiStream::Read