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 |