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


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

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

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

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

None

Remarks

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

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

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

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

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть ks.h (включая Ks.h)
Библиотека Ks.lib
IRQL PASSIVE_LEVEL

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

IoGetDmaAdapter

KSFILTER_DESCRIPTOR

KSMAPPING

KSPIN_DESCRIPTOR_EX