Функция StreamClassGetPhysicalAddress (strmini.h)
Подпрограмма StreamClassGetPhysicalAddress преобразует адрес виртуальной памяти в адрес физической памяти и блокирует соответствующую физическую память для операции DMA.
Синтаксис
STREAM_PHYSICAL_ADDRESS STREAMAPI StreamClassGetPhysicalAddress(
[in] PVOID HwDeviceExtension,
[in, optional] PHW_STREAM_REQUEST_BLOCK HwSRB,
[in] PVOID VirtualAddress,
[in] STREAM_BUFFER_TYPE Type,
[out] ULONG *Length
);
Параметры
[in] HwDeviceExtension
Указатель на расширение устройства мини-драйвера. Мини-диск указывает размер этого буфера в структуре HW_INITIALIZATION_DATA , который он передает при регистрации через StreamClassRegisterMinidriver. Затем драйвер класса передает указатели на буфер в элементе HwDeviceExtensionHW_STREAM_REQUEST_BLOCK, HW_STREAM_OBJECT, HW_TIME_CONTEXT и PORT_CONFIGURATION_INFORMATION структурах, которые передаются в мини-диск.
[in, optional] HwSRB
Задает блок запросов потока. Этот параметр используется только в том случае, если параметр Type имеет значение SRBDataBuffer, в противном случае HwSRB должен иметь значение NULL. Этот параметр является необязательным.
[in] VirtualAddress
Указывает виртуальный адрес для преобразования.
[in] Type
Указывает тип буфера, на который указывает VirtualAddress. Это может быть значение PerRequestExtension, DmaBuffer или SRBDataBuffer.
[out] Length
Указывает длину буфера в байтах.
Возвращаемое значение
StreamClassGetPhysicalAddress возвращает преобразованный виртуальный адрес в качестве адреса физической памяти.
Комментарии
Тип используемого буфера указывается в параметре Type . Значения этих значений показаны в следующей таблице.
Тип буфера | Описание |
---|---|
PerRequestExtension | Указывает физический адрес расширения SRB. |
DmaBuffer | Указывает физический адрес буфера DMA. |
SRBDataBuffer | Указывает физический адрес буфера данных. |
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | strmini.h (включая Strmini.h) |
Библиотека | Stream.lib |