Partager via


Fonction StreamClassGetPhysicalAddress (strmini.h)

La routine StreamClassGetPhysicalAddress convertit 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 de l’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 transmet ensuite des pointeurs vers la mémoire tampon dans le membre HwDeviceExtension du HW_STREAM_REQUEST_BLOCK, HW_STREAM_OBJECT, HW_TIME_CONTEXT et PORT_CONFIGURATION_INFORMATION structures qu’il transmet au minidriver.

[in, optional] HwSRB

Spécifie un bloc de demande de flux. Ce paramètre est utilisé uniquement si le paramètre Type a la valeur SRBDataBuffer, sinon HwSRB doit avoir la valeur NULL. Ce paramètre est facultatif.

[in] VirtualAddress

Spécifie l’adresse virtuelle à traduire.

[in] Type

Spécifie le type de mémoire tampon pointée vers virtualAddress. Cette valeur peut être PerRequestExtension, DmaBuffer ou SRBDataBuffer.

[out] Length

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

Valeur retournée

StreamClassGetPhysicalAddress retourne l’adresse virtuelle traduite en tant qu’adresse 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.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête strmini.h (inclure Strmini.h)
Bibliothèque Stream.lib