CoWaitForMultipleHandles-Funktion (combaseapi.h)
Wartet darauf, dass bestimmte Handles signalisiert werden oder ein festgelegter Timeoutzeitraum verstrichen ist.
Syntax
HRESULT CoWaitForMultipleHandles(
[in] DWORD dwFlags,
[in] DWORD dwTimeout,
[in] ULONG cHandles,
[in] LPHANDLE pHandles,
[out] LPDWORD lpdwindex
);
Parameter
[in] dwFlags
Die Warteoptionen. Mögliche Werte stammen aus der COWAIT_FLAGS-Enumeration .
[in] dwTimeout
Zeitdauer für die Zeitüberschreitung in Millisekunden.
[in] cHandles
Die Anzahl der Elemente im pHandles-Array .
[in] pHandles
Ein Array von Handles.
[out] lpdwindex
Ein Zeiger auf eine Variable, die, wenn die zurückgegebene status S_OK ist, einen Wert empfängt, der das Ereignis angibt, das die Funktion zurückgegeben hat. Dieser Wert ist normalerweise der Index in pHandles für das Handle, das signalisiert wurde.
Wenn pHandles ein oder mehrere Handles für Mutex-Objekte enthält, gibt ein Wert zwischen WAIT_ABANDONED_0 und (WAIT_ABANDONED_0 + nCount - 1) den Index in pHandles für den verworfenen Mutex an.
Wenn das COWAIT_ALERTABLE-Flag in dwFlags festgelegt ist, gibt der Wert WAIT_IO_COMPLETION an, dass die Wartezeit durch einen oder mehrere asynchrone Prozeduraufrufe (APC) im Benutzermodus beendet wurde, die im Thread in die Warteschlange eingereiht wurden.
Weitere Informationen finden Sie unter WaitForMultipleObjectsEx .
Rückgabewert
Diese Funktion kann die folgenden Werte zurückgeben.
Rückgabecode | BESCHREIBUNG |
---|---|
|
Das erforderliche Handle bzw. die erforderlichen Handles wurden signalisiert. |
|
pHandles war NULL, lpdwindex war NULL, oder dwFlags war kein Wert aus der COWAIT_FLAGS-Enumeration . |
|
Der Wert von pHandles war 0. |
|
Der Timeoutzeitraum ist abgelaufen, bevor das erforderliche Handle oder die erforderlichen Handles signalisiert wurden. |
Hinweise
Je nachdem, welche Flags im dwFlags-Parameter festgelegt sind, blockiert CoWaitForMultipleHandles den aufrufenden Thread, bis eines der folgenden Ereignisse auftritt:
- Ein oder alle Handles werden signalisiert. Bei Mutex-Objekten wird diese Bedingung auch dadurch erfüllt, dass ein Mutex aufgegeben wird.
- Ein asynchroner Prozeduraufruf (APC) wurde mit einem Aufruf der QueueUserAPC-Funktion im aufrufenden Thread in die Warteschlange eingereiht.
- Der Timeoutzeitraum läuft ab.
Wenn sich der aufrufende Thread in einem Multithread-Apartment (MTA) befindet, ruft CoWaitForMultipleHandles die WaitForMultipleObjectsEx-Funktion auf.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | combaseapi.h (include Objbase.h) |
Bibliothek | Ole32.lib |
DLL | Ole32.dll |