KsDeviceSetBusData 函数 (ks.h)

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

指向缓冲区的指针,该缓冲区包含要写入总线的数据。 缓冲区中的字节数必须等于或大于 Length

[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)
Library Ks.lib
IRQL 请参见“备注”部分。

另请参阅

IoCallDriver

KsDeviceGetBusData