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。 否则,该方法将返回相应的错误代码。 下表显示了一些可能的返回状态代码。
返回代码 | 说明 |
---|---|
|
由于设备错误,调用失败。 |
|
无效的设备请求 (例如,在 MIDI 输入流上调用 Write ) 。
|
注解
如果方法成功,它将通过 BytesWritten 参数将以下值之一输出给调用方:
- 与 BytesToWrite 相同的值。 此值指示 方法已成功将所有 BytesToWrite 字节的数据写入设备。
- 小于 BytesToWrite 的 4 的倍数。 如果 方法能够将调用方的某些数据(但不是全部)写入设备,则它应写入 4 个字节的倍数。 此值指示调用方应对 方法进行另一次调用以写入剩余数据。
- Zero。 此值指示设备在当前调用期间太忙,无法写入调用方的任何数据,但调用方应稍后重试。 微型端口驱动程序负责区分繁忙设备与设备错误。 方法应避免生成无休止的连续调用,这些调用始终返回成功但写入零个字节。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | portcls.h (包括 Portcls.h) |
IRQL | DISPATCH_LEVEL |