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