Partager via


StreamClassGetPhysicalAddress, fonction (strmini.h)

La routine StreamClassGetPhysicalAddress traduit une adresse de mémoire virtuelle en adresse de mémoire physique et verrouille la mémoire physique correspondante pour une opération DMA.

Syntaxe

STREAM_PHYSICAL_ADDRESS STREAMAPI StreamClassGetPhysicalAddress(
  [in]           PVOID                    HwDeviceExtension,
  [in, optional] PHW_STREAM_REQUEST_BLOCK HwSRB,
  [in]           PVOID                    VirtualAddress,
  [in]           STREAM_BUFFER_TYPE       Type,
  [out]          ULONG                    *Length
);

Paramètres

[in] HwDeviceExtension

Pointeur vers l’extension d’appareil du minidriver. Le minidriver spécifie la taille de cette mémoire tampon dans la structure HW_INITIALIZATION_DATA qu’il transmet lorsqu’il s’inscrit via StreamClassRegisterMinidriver. Le pilote de classe passe ensuite des pointeurs vers la mémoire tampon dans le HwDeviceExtension membre du HW_STREAM_REQUEST_BLOCK, HW_STREAM_OBJECT, HW_TIME_CONTEXTet PORT_CONFIGURATION_INFORMATION structures qu’il transmet au minidriver.

[in, optional] HwSRB

Spécifie un bloc de demande de flux. Ce paramètre n’est utilisé que si le paramètre type a la valeur SRBDataBuffer, sinon HwSRB doit être NULL. Ce paramètre est facultatif.

[in] VirtualAddress

Spécifie l’adresse virtuelle à traduire.

[in] Type

Spécifie le type de mémoire tampon vers lequel pointe VirtualAddress. Cette valeur peut être PerRequestExtension, DmaBuffer ou SRBDataBuffer.

[out] Length

Spécifie la longueur, en octets, de la mémoire tampon.

Valeur de retour

StreamClassGetPhysicalAddress retourne l’adresse virtuelle traduite en tant qu’adresse de mémoire physique.

Remarques

Le type de mémoire tampon à utiliser est spécifié dans le paramètre Type. Les significations de ces valeurs sont indiquées dans le tableau suivant.

Type de mémoire tampon Description
PerRequestExtension Indique l’adresse physique de l’extension SRB.
DmaBuffer Indique l’adresse physique de la mémoire tampon DMA.
SRBDataBuffer Indique l’adresse physique de la mémoire tampon de données.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête strmini.h (include Strmini.h)
bibliothèque Stream.lib