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 |