ksDeviceGetBusData 函数 (ks.h)

KsDeviceGetBusData 函数从给定 AVStream 设备所在的总线读取数据。

语法

KSDDKAPI ULONG KsDeviceGetBusData(
  [in] PKSDEVICE Device,
  [in] ULONG     DataType,
  [in] PVOID     Buffer,
  [in] ULONG     Offset,
  [in] ULONG     Length
);

参数

[in] Device

指向 KSDEVICE 结构的指针,表示应读取来自总线的数据的给定 AVStream 设备。

[in] DataType

此参数指示要读取的总线数据类型。 零对应于配置空间。 有关详细信息,请参阅IRP_MN_READ_CONFIG参考页中的“WhichSpace”的讨论。

[in] Buffer

指向接收从总线读取的数据的缓冲区的指针。 必须至少与 Length 一样大。

[in] Offset

此参数包含 DataType 从中读取数据的 DataType 指定的空间中的字节偏移量。

[in] Length

此参数指定要读入 Buffer 的字节数。

返回值

KsDeviceGetBusData 返回实际从总线读取的字节数。 如果发生错误,则此值为零。

注解

根据指定设备所在的总线的驱动程序,此函数存在两种可能的行为和限制集。 如果给定的总线驱动程序支持总线接口标准 (通常为 PCI) ,请在 IRQL = PASSIVE_LEVEL或DISPATCH_LEVEL调用此函数。 调用此类后, KsDeviceGetBusData 返回从请求的空间读取的实际字节数。 但是,如果给定的总线驱动程序不支持总线接口标准,则 AVStream 通过 IoCallDriver 与总线驱动程序通信。 请注意,这会将 KsDeviceGetBusData 的使用限制为 IRQL = PASSIVE_LEVEL,也意味着返回值在失败的情况下为 0,或者如果数据获取成功,则等于 Length

为了确保兼容性,微型驱动程序编写器可能需要将 KsDeviceGetBusData 的使用限制为 IRQL = PASSIVE_LEVEL。

要求

   
最低受支持的客户端 在 Microsoft Windows XP 及更高版本的操作系统和 DirectX 8.0 及更高版本的 DirectX 中可用。
目标平台 通用
标头 ks.h (包括 Ks.h)
Library Ks.lib
IRQL PASSIVE_LEVEL (“备注”部分)

另请参阅

IoCallDriver

KsDeviceSetBusData