Функция 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

Этот параметр указывает тип считываемых данных шины. Ноль соответствует пространству конфигурации. Дополнительные сведения см. в обсуждении WhichSpace на странице справочника по IRP_MN_READ_CONFIG.

[in] Buffer

Указатель на буфер, который получает данные, считываемые из шины. Должен быть не меньше длины.

[in] Offset

Этот параметр содержит смещение байтов в пространстве, заданном параметром DataType , из которого считываются данные.

[in] Length

Этот параметр указывает количество байтов для чтения в буфер.

Возвращаемое значение

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 и более поздних версиях.
Целевая платформа Универсальное
Верхняя часть ks.h (включая Ks.h)
Библиотека Ks.lib
IRQL PASSIVE_LEVEL (см. раздел "Примечания")

См. также раздел

IoCallDriver

KsDeviceSetBusData