KsDeviceSetBusData 函数将数据写入指定 AVStream 设备所在的总线。
语法
KSDDKAPI ULONG KsDeviceSetBusData(
[in] PKSDEVICE Device,
[in] ULONG DataType,
[in] PVOID Buffer,
[in] ULONG Offset,
[in] ULONG Length
);
参数
[in] Device
指向 KSDEVICE 结构的指针。 此例程尝试将数据写入此设备所在的总线。
[in] DataType
此参数指示要写入的总线数据类型。 零对应于配置空间。 有关详细信息,请参阅 IRP_MN_READ_CONFIG参考页中 WhichSpace 的讨论。
[in] Buffer
指向包含要写入到总线的数据的缓冲区的指针。 缓冲区中的字节数必须等于或大于 长度。
[in] Offset
此参数包含由 DataType 指定的空间中的字节偏移量, 在其中写入数据。
[in] Length
此参数指定要从 Buffer 写入到总线的数据字节数。
返回值
KsDeviceSetBusData 返回实际写入总线的字节数。 对于错误,例程返回零。 请参阅“备注”部分中的详细信息。
言论
此函数根据指定设备所在的总线的驱动程序以不同的方式执行。 如果总线驱动程序支持总线接口标准(通常是 PCI),请在 IRQL = PASSIVE_LEVEL 或DISPATCH_LEVEL调用此函数。 在进行此类调用后,KsDeviceSetBusData 返回写入请求空间的实际字节数。
如果总线驱动程序不支持总线接口标准,AVStream 将使用 IoCallDriver与总线驱动程序通信。 在这种情况下,请在 IRQL = PASSIVE_LEVEL 调用 KsDeviceSetBusData。 如果成功写入数据,则返回值为零,或者等于 Length。
在 Windows 2000 及更高版本上运行的驱动程序可以在 IRQL = DISPATCH_LEVEL进行此调用。 但是,为了确保兼容性,微型驱动程序编写器可能需要将 KsDeviceSetBusData 限制为 IRQL = PASSIVE_LEVEL。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Microsoft Windows XP 及更高版本的作系统以及 DirectX 8.0 及更高版本的 DirectX 版本中提供。 |
目标平台 | 普遍 |
标头 | ks.h (包括 Ks.h) |
库 | Ks.lib |
IRQL | 请参阅“备注”部分。 |