Freigeben über


StorPortGetPhysicalAddress-Funktion (storport.h)

Die StorPortGetPhysicalAddress Routine konvertiert einen bestimmten virtuellen Adressbereich in einen physischen Adressbereich für einen DMA-Vorgang.

Syntax

STORPORT_API STOR_PHYSICAL_ADDRESS StorPortGetPhysicalAddress(
  [in]           PVOID               HwDeviceExtension,
  [in, optional] PSCSI_REQUEST_BLOCK Srb,
  [in]           PVOID               VirtualAddress,
  [out]          ULONG               *Length
);

Parameter

[in] HwDeviceExtension

Ein Zeiger auf die Hardwaregeräteerweiterung. Dies ist ein HBA-Speicherbereich, den der Porttreiber im Namen des Miniporttreibers zuweist und initialisiert. Miniporttreiber speichern in der Regel HBA-spezifische Informationen in dieser Erweiterung, z. B. den Zustand der HBA und die zugeordneten Zugriffsbereiche für die HBA. Dieser Bereich steht dem Miniporttreiber im DeviceExtension->HwDeviceExtension Mitglied des Geräteobjekts für die HBA unmittelbar nach dem Aufruf StorPortInitializezur Verfügung. Der Porttreiber gibt diesen Speicher frei, wenn es das Gerät entfernt.

[in, optional] Srb

Zeiger auf den SCSI-Anforderungsblock, wenn die zu konvertierende virtuelle Adresse aus dem DataBuffer Mitglied des SRB oder SenseInfoBuffer Member stammt. Andernfalls muss dieser Parameter NULL-sein.

[in] VirtualAddress

Zeiger auf die virtuelle Basisadresse, die konvertiert werden soll. Wenn diese virtuelle Adresse innerhalb des Bereichs eines von SRB bereitgestellten DataBuffer-liegt, muss der Aufrufer auch den Srb Zeiger bereitstellen.

[out] Length

Zeigen Sie auf einen Wert, der die Anzahl der zugeordneten Bytes angibt, beginnend mit der zurückgegebenen physischen Adresse.

Rückgabewert

StorPortGetPhysicalAddress gibt die entsprechende physische Adresse für eine bestimmte virtuelle Adresse zurück. Wenn die angegebene Adresse nicht konvertiert werden kann, gibt die Funktion NULL-zurück.

Bemerkungen

Wenn die an StorPortGetPhysicalAddress übergebene virtuelle Adresse von StorPortAllocateContiguousMemorySpecifyCacheNodeabgerufen wird, sollte der für Length zurückgegebene Wert ignoriert werden.

Ab Windows 8 kann der parameter Srb entweder auf SCSI_REQUEST_BLOCK oder STORAGE_REQUEST_BLOCKverweisen. Wenn der Funktionsbezeichner im Feld Function von SrbSRB_FUNCTION_STORAGE_REQUEST_BLOCKist, ist der SRB eine STORAGE_REQUEST_BLOCK Anforderungsstruktur.

StorPortGetPhysicalAddress verwendet STOR_PHYSICAL_ADDRESS, um physische Adressen darzustellen.

typedef PHYSICAL_ADDRESS STOR_PHYSICAL_ADDRESS, *PSTOR_PHYSICAL_ADDRESS;

Der STOR_PHYSICAL_ADDRESS Typ ist ein betriebssystemunabhängiger Datentyp, den Storport-Miniporttreiber verwenden, um eine physische Adresse oder eine busrelative Adresse darzustellen.

Anforderungen

Anforderung Wert
Zielplattform- Universal
Header- storport.h (include Storport.h)
Library Storport.lib

Siehe auch

SCSI_REQUEST_BLOCK

STORAGE_REQUEST_BLOCK

ScsiPortGetPhysicalAddress