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 |