Partager via


StorPortGetPfns, fonction (storport.h)

La routine StorPortGetPfns peut être appelée lorsqu’un miniport doit récupérer des PFN associés à une MDL pour un SRB.

Syntaxe

ULONG StorPortGetPfns(
  [in]  PVOID               HwDeviceExtension,
  [in]  PSCSI_REQUEST_BLOCK Srb,
  [in]  PVOID               Mdl,
  [out] PVOID               *Pfns,
  [out] ULONG               *PfnCount,
  [out] ULONG               *StartingOffset
);

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.

[in] Srb

Pointeur vers le bloc de requête SCSI (SRB) source.

[in] Mdl

Pointeur vers la MDL pour laquelle des pfns sont demandés. Seules les DLL obtenues à l’aide de StorPortGetOriginalMdl ou StorPortGetDataInBufferMdl sont prises en charge.

[out] Pfns

Pointeur vers le début du tableau des numéros de page physiques associés à la MDL. Les appelants ne doivent PAS modifier, mettre à jour ou libérer la liste.

[out] PfnCount

Spécifie le nombre de PFN dans le tableau.

[out] StartingOffset

Spécifie le décalage d’octets dans la page initiale de la mémoire tampon décrite par la MDL donnée.

Valeur retournée

StorPortGetPfns retourne l’un des codes status suivants :

Code de retour Description
STOR_STATUS_NOT_IMPLEMENTED Cette fonction n’est pas implémentée sur le système d’exploitation actif.
STOR_STATUS_SUCCESS Les éléments de liste ont été supprimés correctement ou la liste est déjà vide.
STOR_STATUS_INVALID_PARAMETER Un pointeur vers l’un des paramètres est NULL.

Remarques

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.

À compter de Windows 8, le paramètre Srb peut pointer vers SCSI_REQUEST_BLOCK ou STORAGE_REQUEST_BLOCK.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête storport.h

Voir aussi

StorPortGetDataInBufferMdl

StorPortGetOriginalMdl

StorPortInitialize