Freigeben über


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

Weitere Informationen

Media Foundation-Funktionen

Verbesserungen bei Arbeitswarteschlange und Threading

Arbeitswarteschlangen