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 |