функция обратного вызова PBUILD_MDL_FROM_SCATTER_GATHER_LIST (wdm.h)
Подпрограмма BuildMdlFromScatterGatherList создает MDL из точечных и сборных списков, выделенных системой.
Эта подпрограмма зарезервирована для использования системой.
Синтаксис
PBUILD_MDL_FROM_SCATTER_GATHER_LIST PbuildMdlFromScatterGatherList;
NTSTATUS PbuildMdlFromScatterGatherList(
[in] PDMA_ADAPTER DmaAdapter,
[in] PSCATTER_GATHER_LIST ScatterGather,
[in] PMDL OriginalMdl,
[out] PMDL *TargetMdl
)
{...}
Параметры
[in] DmaAdapter
Указатель на структуру DMA_ADAPTER, возвращаемую IoGetDmaAdapter, которая представляет адаптер master шины или контроллер DMA.
[in] ScatterGather
Указатель на структуру SCATTER_GATHER_LIST , переданную в подпрограмму AdapterListControl драйвера.
[in] OriginalMdl
Указатель на исходный MDL, который драйвер использовал для создания точечных и сборных списков.
[out] TargetMdl
Указатель на переменную, которую подпрограмма использует для возврата MDL, созданного для хранения буфера, описанного в списке точечной и сборной. Возвращаемое значение может совпадать с OriginalMdl.
Возвращаемое значение
BuildMdlFromScatterGatherList возвращает один из следующих кодов состояния:
Код возврата | Описание |
---|---|
STATUS_SUCCESS | Операция успешно выполнена. |
STATUS_INVALID_PARAMETER | Параметр OriginalMdl имеет значение NULL. |
STATUS_INSUFFICIENT_RESOURCES | Недостаточно памяти для выделения нового языка MDL. |
STATUS_NONE_MAPPED | Система уже создала новый MDL для расположений памяти в списке точечной и сборной. (Это происходит только в том случае, если подпрограмма вызывается дважды в одном и том же списке точечной или сборной.) |
Комментарии
BuildMdlFromScatterGatherList не является системной подпрограммой, которую можно вызывать напрямую по имени. Эта подпрограмма может вызываться только указателем из адреса, возвращаемого в DMA_OPERATIONS структуре. Драйверы получают адрес этой подпрограммы, вызывая IoGetDmaAdapter с элементом Version параметра DeviceDescription , равным DEVICE_DESCRIPTION_VERSION2. Если IoGetDmaAdapter возвращает значение NULL, подпрограмма недоступна на вашей платформе.
Когда драйвер создает список точечной или сборной для записи на устройство, система может создать копию записываемых данных и использовать ее для выполнения операции DMA. Используйте эту подпрограмму для доступа к расположениям памяти в списке точечной и сборной независимо от того, являются ли эти расположения копиями.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows XP и более поздних версиях Windows. |
Целевая платформа | Персональный компьютер |
Верхняя часть | wdm.h (включая Wdm.h) |
IRQL | <= DISPATCH_LEVEL |
Правила соответствия DDI | IrqlDispatch(wdm) |