Функция KsDeviceRegisterAdapterObject (ks.h)

Функция KsDeviceRegisterAdapterObject регистрирует объект адаптера DMA с AVStream для выполнения точечной или сбора DMA на указанном устройстве. Все драйверы, скомпилированные для Win64, должны использовать вместо этого IKsDeviceFunctions::RegisterAdapterObjectEx.

Синтаксис

void KsDeviceRegisterAdapterObject(
  [in] PKSDEVICE       Device,
  [in] PADAPTER_OBJECT AdapterObject,
  [in] ULONG           MaxMappingsByteCount,
  [in] ULONG           MappingTableStride
);

Параметры

[in] Device

Указатель на структуру KSDEVICE, представляющую устройство AVStream, для которого необходимо зарегистрировать объект адаптера.

[in] AdapterObject

Указатель на структуру DMA_ADAPTER, возвращаемую IoGetDmaAdapter, представляющей контроллер DMA.

[in] MaxMappingsByteCount

Этот параметр указывает максимальное количество байтов, которые устройство может обрабатывать для одного сопоставления. Позволяет AVStream автоматически разбить большие блоки непрерывной физической памяти на несколько элементов точечного и сбора элементов для устройств, которые накладывают ограничение размера на отдельные сопоставления при передаче DMA. Разрывы не гарантируются на границах страницы.

[in] MappingTableStride

Этот параметр указывает, сколько байтов каждой записи в таблице сопоставления требуется. Это должно быть по крайней мере размер (KSMAPPING) и может быть максимально большим.

Дополнительное пространство можно использовать мини-driver в качестве сведений о контексте.

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

Никакой

Замечания

Мини-driver, вызывающий KsDeviceRegisterAdapterObject, отвечает за ранее получение объекта адаптера через IoGetDmaAdapter.

Кроме того, обратите внимание, что если мини-driver задает флаг KSPIN_FLAG_GENERATE_MAPPINGS для любого закрепления на любом фильтре на устройстве, мини-driver должен вызывать KsDeviceRegisterAdapterObject перед обработкой любых данных. Дополнительные сведения об этом флаге можно найти на справочной странице для KSPIN_DESCRIPTOR_EX. См. также служб DMA AVStream.

Если MaxMappingByteCount на одну физическую страницу длиной, сопоставления не гарантированно находятся на одной физической странице. Кроме того, как указано в описании члена выше, параметр MaxMappingsByteCount не гарантирует, что разрывы будут возникать на границах страницы. Если требуется разрывы границ страницы, рекомендуется не указывать ограничение на размеры сопоставления; Вместо этого разорвать возвращаемые сопоставления точечной и сборной на выровненные страницы блоки вручную.

См. также поддержка DMA в 64-разрядных драйверах AVStream.

Требования

Требование Ценность
целевая платформа Всеобщий
заголовка ks.h (include Ks.h)
библиотеки Ks.lib
IRQL PASSIVE_LEVEL

См. также

IoGetDmaAdapter

KSFILTER_DESCRIPTOR

KSMAPPING

KSPIN_DESCRIPTOR_EX