Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Подпрограмма StorPortGetPhysicalAddress преобразует заданный диапазон виртуальных адресов в физический диапазон адресов для операции DMA.
Синтаксис
STORPORT_API STOR_PHYSICAL_ADDRESS StorPortGetPhysicalAddress(
[in] PVOID HwDeviceExtension,
[in, optional] PSCSI_REQUEST_BLOCK Srb,
[in] PVOID VirtualAddress,
[out] ULONG *Length
);
Параметры
[in] HwDeviceExtension
Указатель на расширение аппаратного устройства. Это область хранения HBA, которую драйвер портов выделяет и инициализирует от имени мини-порта. Драйверы минипорта обычно хранят сведения, относящиеся к HBA, в этом расширении, например состояние HBA и сопоставленные диапазоны доступа для HBA. Эта область доступна для мини-драйвера в элементе DeviceExtension-HwDeviceExtension> объекта устройства для HBA сразу после вызова драйвера минипорта StorPortInitialize. Драйвер портов освобождает эту память при удалении устройства.
[in, optional] Srb
Указатель на блок запроса SCSI, если преобразованный виртуальный адрес поступает из этого элемента DataBuffer SRB, SenseInfoBuffer или SrbExtension . В противном случае этот параметр должен иметь значение NULL.
[in] VirtualAddress
Указатель на базовый виртуальный адрес, который необходимо преобразовать. Если этот виртуальный адрес попадает в диапазон для предоставленного SRB DataBuffer, вызывающий объект также должен предоставить указатель Srb .
[out] Length
Указатель на значение, указывающее число сопоставленных байтов, начиная с возвращаемого физического адреса.
Возвращаемое значение
StorPortGetPhysicalAddress возвращает соответствующий физический адрес для заданного виртуального адреса. Если указанный адрес не может быть преобразован, функция возвращает значение NULL.
Замечания
Если виртуальный адрес, переданный в StorPortGetPhysicalAddress , получен из StorPortAllocateContiguousMemorySpecifyCacheNode, значение, возвращаемое для Length , следует игнорировать.
Начиная с Windows 8 параметр Srb может указывать на SCSI_REQUEST_BLOCK или STORAGE_REQUEST_BLOCK. Если идентификатор функции в поле "Функция" SrbSRB_FUNCTION_STORAGE_REQUEST_BLOCK, SRB представляет собой структуру запроса STORAGE_REQUEST_BLOCK.
StorPortGetPhysicalAddress использует STOR_PHYSICAL_ADDRESS для представления физических адресов.
typedef PHYSICAL_ADDRESS STOR_PHYSICAL_ADDRESS, *PSTOR_PHYSICAL_ADDRESS;
Тип STOR_PHYSICAL_ADDRESS — это независимый от операционной системы тип данных, используемый драйверами минипорта Storport для представления физических адресов или относительного адреса шины.
Требования
| Требование | Ценность |
|---|---|
| целевая платформа | универсальный |
| Header | storport.h (include Storport.h) |
| Library | Storport.lib |