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 指定的空间中的字节偏移量。
[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 (请参阅“备注”部分) |