MFLockSharedWorkQueue-Funktion (mfapi.h)
Ruft eine freigegebene Arbeitswarteschlange ab und sperrt sie.
Syntax
HRESULT MFLockSharedWorkQueue(
[in] PCWSTR wszClass,
[in] LONG BasePriority,
[in, out] DWORD *pdwTaskId,
[out] DWORD *pID
);
Parameter
[in] wszClass
Der Name des MMCSS-Tasks.
[in] BasePriority
Die Basispriorität der Arbeitswarteschlangenthreads.
Wenn die Warteschlange mit regulärer Priorität verwendet wird (wszClass="), muss der Wert 0 übergeben werden.
[in, out] pdwTaskId
Der MMCSS-Aufgabenbezeichner. Geben Sie bei der Eingabe eine vorhandene MCCSS-Aufgabengruppen-ID an, oder verwenden Sie den Wert 0 , um eine neue Aufgabengruppe zu erstellen. Wenn die reguläre Prioritätswarteschlange verwendet wird (wszClass=""), muss NULL übergeben werden. Empfängt bei der Ausgabe die tatsächliche Aufgabengruppen-ID.
[out] pID
Empfängt einen Bezeichner für die neue Arbeitswarteschlange. Verwenden Sie diesen Bezeichner beim Anstehen von Arbeitselementen.
Rückgabewert
Wenn diese Funktion erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.
Hinweise
Eine Multithread-Arbeitswarteschlange verwendet einen Threadpool zum Senden von Arbeitselementen. Sobald ein Thread verfügbar ist, wird das nächste Arbeitselement aus der Warteschlange entfernt. Arbeitselemente werden in der First-in-First-Out-Reihenfolge entfernt, Arbeitselemente werden jedoch nicht serialisiert. Anders ausgedrückt: Die Arbeitswarteschlange wartet nicht auf den Abschluss eines Arbeitselements, bevor das nächste Arbeitselement gestartet wird.
Innerhalb eines einzelnen Prozesses erstellt die Microsoft Media Foundation-Plattform bis zu einer Multithreadwarteschlange für jeden MMCSS-Task (Multimedia Class Scheduler Service). Die MFLockSharedWorkQueue-Funktion überprüft, ob bereits eine übereinstimmende Arbeitswarteschlange vorhanden ist. Andernfalls erstellt die Funktion eine neue Arbeitswarteschlange und registriert die Arbeitswarteschlange bei MMCSS. Die Funktion gibt den MMCSS-Aufgabenbezeichner (pdwTaskId) und den Arbeitswarteschlangenbezeichner (pID) zurück. Um ein Arbeitselement in die Warteschlange zu stellen, übergeben Sie den Arbeitswarteschlangenbezeichner an eine der folgenden Funktionen:
Die MFLockSharedWorkQueue-Funktion sperrt auch die Warteschlange. Rufen Sie vor dem Beenden des Prozesses MFUnlockWorkQueue auf, um die Arbeitswarteschlange zu entsperren.Wenn die reguläre Prioritätswarteschlange verwendet wird (wszClass=""), muss NULL an pdwTaskId und der Wert 0 an BasePriority übergeben werden.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 8 [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2012 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | mfapi.h |
Bibliothek | Mfplat.lib |
DLL | Mfplat.dll |