Fonction MFLockSharedWorkQueue (mfapi.h)
Obtient et verrouille une file d’attente de travail partagée.
Syntaxe
HRESULT MFLockSharedWorkQueue(
[in] PCWSTR wszClass,
[in] LONG BasePriority,
[in, out] DWORD *pdwTaskId,
[out] DWORD *pID
);
Paramètres
[in] wszClass
Nom de la tâche MMCSS.
[in] BasePriority
Priorité de base des threads de file d’attente de travail.
Si la file d’attente de priorité régulière est utilisée (wszClass=" »), la valeur 0 doit être transmise.
[in, out] pdwTaskId
Identificateur de tâche MMCSS. Lors de l’entrée, spécifiez un ID de groupe de tâches MCCSS existant ou utilisez la valeur zéro pour créer un groupe de tâches. Si la file d’attente de priorité régulière est utilisée (wszClass=" »), la valeur NULL doit être transmise. Lors de la sortie, reçoit l’ID réel du groupe de tâches.
[out] pID
Reçoit un identificateur pour la nouvelle file d’attente de travail. Utilisez cet identificateur lors de la mise en file d’attente d’éléments de travail.
Valeur retournée
Si cette fonction réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.
Notes
Une file d’attente de travail multithread utilise un pool de threads pour distribuer des éléments de travail. Chaque fois qu’un thread devient disponible, il supprime l’élément de travail suivant de la file d’attente. Les éléments de travail sont mis en file d’attente dans l’ordre du premier sorti, mais les éléments de travail ne sont pas sérialisés. En d’autres termes, la file d’attente de travail n’attend pas qu’un élément de travail se termine avant de démarrer l’élément de travail suivant.
Au sein d’un processus unique, la plateforme Microsoft Media Foundation crée jusqu’à une file d’attente multithread pour chaque tâche MMCSS (Multimedia Class Scheduler Service). La fonction MFLockSharedWorkQueue vérifie si une file d’attente de travail correspondante existe déjà. Si ce n’est pas le cas, la fonction crée une file d’attente de travail et inscrit la file d’attente de travail auprès de MMCSS. La fonction retourne l’identificateur de tâche MMCSS (pdwTaskId) et l’identificateur de file d’attente de travail (pID). Pour mettre en file d’attente un élément de travail, passez l’identificateur de file d’attente de travail à l’une des fonctions suivantes :
La fonction MFLockSharedWorkQueue verrouille également la file d’attente. Avant la fin du processus, appelez MFUnlockWorkQueue pour déverrouiller la file d’attente de travail.Si la file d’attente de priorité régulière est utilisée (wszClass=" »), la valeur NULL doit être transmise à pdwTaskId et la valeur 0 doit être transmise à BasePriority.
Spécifications
Client minimal pris en charge | Windows 8 [applications de bureau | Applications UWP] |
Serveur minimal pris en charge | Windows Server 2012 [applications de bureau | Applications UWP] |
Plateforme cible | Windows |
En-tête | mfapi.h |
Bibliothèque | Mfplat.lib |
DLL | Mfplat.dll |
Voir aussi
Améliorations apportées à la file d’attente de travail et au threading