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