Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 |