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


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

Указатель на расширение устройства minidriver. Мини-driver задает размер этого буфера в структуре HW_INITIALIZATION_DATA, которая передается при регистрации через StreamClassRegisterMinidriver. Затем драйвер класса передает указатели на буфер в HwDeviceExtension член HW_STREAM_REQUEST_BLOCK, HW_STREAM_OBJECT, HW_TIME_CONTEXTи PORT_CONFIGURATION_INFORMATION структурирует его в мини-driver.

[in, optional] HwSRB

Задает блок запроса потока. Этот параметр используется только в том случае, если параметр типа имеет значение SRBDataBuffer, в противном случае HwSRB должен быть NULL. Этот параметр является необязательным.

[in] VirtualAddress

Указывает виртуальный адрес, который необходимо преобразовать.

[in] Type

Указывает тип буфера, на который указывает VirtualAddress. Это значение может быть PerRequestExtension, DmaBuffer или SRBDataBuffer.

[out] Length

Указывает длину буфера в байтах.

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

StreamClassGetPhysicalAddress возвращает преобразованный виртуальный адрес в качестве адреса физической памяти.

Замечания

Тип используемого буфера указывается в параметре типа. Значения этих значений показаны в следующей таблице.

Тип буфера Описание
PerRequestExtension Указывает физический адрес расширения SRB.
DmaBuffer Указывает физический адрес буфера DMA.
SRBDataBuffer Указывает физический адрес буфера данных.

Требования

Требование Ценность
целевая платформа Настольный
заголовка strmini.h (include Strmini.h)
библиотеки Stream.lib