Partager via


StorPortGetPhysicalAddress, fonction (storport.h)

La routine StorPortGetPhysicalAddress convertit une plage d’adresses virtuelles donnée en plage d’adresses physique pour une opération DMA.

Syntaxe

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

Paramètres

[in] HwDeviceExtension

Pointeur vers l’extension de périphérique matériel. Il s’agit d’une zone de stockage par HBA que le pilote de port alloue et initialise pour le compte du pilote miniport. Les pilotes Miniport stockent généralement des informations spécifiques à HBA dans cette extension, telles que l’état du HBA et les plages d’accès mappées pour l’adaptateur HBA. Cette zone est disponible pour le pilote miniport dans le membre DeviceExtension-HwDeviceExtension> de l’objet de périphérique pour l’adaptateur HBA immédiatement après que le pilote miniport a appelé StorPortInitialize. Le pilote de port libère cette mémoire lorsqu’il supprime l’appareil.

[in, optional] Srb

Pointeur vers le bloc de requête SCSI si l’adresse virtuelle à convertir provient du membre DataBuffer de ce SRB ou du membre SenseInfoBuffer . Sinon, ce paramètre doit être NULL.

[in] VirtualAddress

Pointeur vers l’adresse virtuelle de base à convertir. Si cette adresse virtuelle se situe dans la plage d’un DataBuffer fourni par SRB, l’appelant doit également fournir le pointeur Srb .

[out] Length

Pointeur vers une valeur indiquant le nombre d’octets mappés, en commençant à l’adresse physique retournée.

Valeur retournée

StorPortGetPhysicalAddress retourne l’adresse physique correspondante pour une adresse virtuelle donnée. Si l’adresse donnée ne peut pas être convertie, la fonction retourne NULL.

Remarques

Si l’adresse virtuelle passée à StorPortGetPhysicalAddress est obtenue à partir de StorPortAllocateContiguousMemorySpecifyCacheNode, la valeur retournée pour Length doit être ignorée.

À compter de Windows 8, le paramètre Srb peut pointer vers SCSI_REQUEST_BLOCK ou STORAGE_REQUEST_BLOCK. Si l’identificateur de fonction dans le champ Function de Srb est SRB_FUNCTION_STORAGE_REQUEST_BLOCK, le SRB est une structure de requête STORAGE_REQUEST_BLOCK .

StorPortGetPhysicalAddress utilise STOR_PHYSICAL_ADDRESS pour représenter des adresses physiques.

typedef PHYSICAL_ADDRESS STOR_PHYSICAL_ADDRESS, *PSTOR_PHYSICAL_ADDRESS;

Le type STOR_PHYSICAL_ADDRESS est un type de données indépendant du système d’exploitation que les pilotes de miniport Storport utilisent pour représenter une adresse physique ou une adresse relative de bus.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête storport.h (inclure Storport.h)
Bibliothèque Storport.lib

Voir aussi

SCSI_REQUEST_BLOCK

STORAGE_REQUEST_BLOCK

ScsiPortGetPhysicalAddress