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