Поделиться через


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

[in] Buffer

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

[in] Offset

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

[in] Length

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

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

KsDeviceGetBusData возвращает количество байтов, фактически считываемых из шины. Если возникают ошибки, это значение равно нулю.

Замечания

В зависимости от водителя шины, в которой находится указанное устройство, существует два возможных поведения и наборы ограничений для этой функции. Если данный драйвер шины поддерживает стандартный интерфейс шины (обычно PCI), вызовите эту функцию по адресу IRQL = PASSIVE_LEVEL или DISPATCH_LEVEL. После такого вызова KsDeviceGetBusData возвращает фактическое количество байтов, считываемых из запрошенного пространства. Однако если указанный драйвер шины не поддерживает стандартный интерфейс шины, AVStream взаимодействует с водителем автобуса через IoCallDriver. Обратите внимание, что это ограничивает использование KsDeviceGetBusData irQL = PASSIVE_LEVEL, а также означает, что возвращаемое значение равно 0, в случае сбоя или равно длине, если получение данных было успешно.

Чтобы обеспечить совместимость, записи мини-driver могут потребовать ограничить использование KsDeviceGetBusData с IRQL = PASSIVE_LEVEL.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Microsoft Windows XP и более поздних операционных системах и версиях DirectX 8.0 и более поздних версий DirectX.
целевая платформа Всеобщий
заголовка ks.h (include Ks.h)
библиотеки Ks.lib
IRQL PASSIVE_LEVEL (см. раздел "Примечания")

См. также

IoCallDriver

KsDeviceSetBusData