Freigeben über


StorPortGetPhysicalAddress-Funktion (storport.h)

Die StorPortGetPhysicalAddress-Routine konvertiert einen angegebenen 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. Hierbei handelt es sich um einen HBA-Speicherbereich, den der Porttreiber im Auftrag des Miniporttreibers ordnet und initialisiert. Miniporttreiber speichern normalerweise HBA-spezifische Informationen in dieser Erweiterung, z. B. den Zustand des HBA und die zugeordneten Zugriffsbereiche für den HBA. Dieser Bereich steht dem Miniporttreiber im DeviceExtension-HwDeviceExtension-Member> des Geräteobjekts für den HBA unmittelbar nach dem Aufruf von StorPortInitialize durch den Miniporttreiber zur Verfügung. Der Porttreiber gibt diesen Arbeitsspeicher frei, wenn er das Gerät entfernt.

[in, optional] Srb

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

[in] VirtualAddress

Zeiger auf die zu konvertierende virtuelle Basisadresse. Wenn diese virtuelle Adresse innerhalb des Bereichs für einen von SRB bereitgestellten DataBuffer liegt, muss der Aufrufer auch den Srb-Zeiger bereitstellen.

[out] Length

Zeiger auf einen Wert, der die Anzahl der zugeordneten Bytes angibt, beginnend bei 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.

Hinweise

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

Ab Windows 8 kann der Srb-Parameter entweder auf SCSI_REQUEST_BLOCK oder STORAGE_REQUEST_BLOCK verweisen. Wenn der Funktionsbezeichner im Feld Funktion von SrbSRB_FUNCTION_STORAGE_REQUEST_BLOCK ist, 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 Typs ist ein betriebssystemunabhängiger Datentyp, den Storport-Miniporttreiber verwenden, um entweder eine physische Adresse oder eine busrelative Adresse darzustellen.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header storport.h (einschließlich Storport.h)
Bibliothek Storport.lib

Weitere Informationen

SCSI_REQUEST_BLOCK

STORAGE_REQUEST_BLOCK

ScsiPortGetPhysicalAddress