Función DequeueUmsCompletionListItems (winbase.h)
Recupera los subprocesos de trabajo de programación en modo de usuario (UMS) de la lista de finalización de UMS especificada.
Advertencia
A partir de Windows 11, no se admite la programación en modo de usuario. Todas las llamadas producen el error ERROR_NOT_SUPPORTED
.
Sintaxis
BOOL DequeueUmsCompletionListItems(
[in] PUMS_COMPLETION_LIST UmsCompletionList,
[in] DWORD WaitTimeOut,
[out] PUMS_CONTEXT *UmsThreadList
);
Parámetros
[in] UmsCompletionList
Puntero a la lista de finalización desde la que se van a recuperar subprocesos de trabajo.
[in] WaitTimeOut
Intervalo de tiempo de espera para la operación de recuperación, en milisegundos. La función devuelve si transcurre el intervalo, incluso si no hay subprocesos de trabajo en cola en la lista de finalización.
Si el parámetro WaitTimeOut es cero, la lista de finalización se comprueba si hay subprocesos de trabajo disponibles sin esperar a que los subprocesos de trabajo estén disponibles. Si el parámetro WaitTimeOut es INFINITE, el intervalo de tiempo de espera de la función nunca transcurre. Sin embargo, esto no se recomienda porque hace que la función se bloquee hasta que uno o varios subprocesos de trabajo estén disponibles.
[out] UmsThreadList
Puntero a una variable UMS_CONTEXT. En la salida, este parámetro recibe un puntero al primer contexto de subproceso de UMS en una lista de contextos de subprocesos de UMS.
Si no hay subprocesos de trabajo disponibles antes del tiempo de espera especificado por el parámetro WaitTimeOut , este parámetro se establece en NULL.
Valor devuelto
Si la función se ejecuta correctamente, devuelve un valor distinto de cero.
Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError. Entre los valores de error posibles se incluyen los siguientes.
Código devuelto | Descripción |
---|---|
|
No hay subprocesos disponibles antes de que haya transcurrido el intervalo de tiempo de espera especificado. |
|
No se admite UMS. |
Comentarios
El sistema pone en cola un subproceso de trabajo de UMS en una lista de finalización cuando se crea el subproceso de trabajo o cuando se desbloquea un subproceso de trabajo bloqueado previamente. La función DequeueUmsCompletionListItems recupera un puntero a una lista de todos los contextos de subproceso de la lista de finalización especificada. La función GetNextUmsListItem se puede usar para quitar los contextos de subprocesos de UMS de la lista en la propia cola de subprocesos listos del programador. El programador es responsable de seleccionar subprocesos para ejecutarse en función de las prioridades elegidas por la aplicación.
No ejecute subprocesos de UMS directamente desde la lista proporcionada por DequeueUmsCompletionListItems o ejecute un subproceso transferido de la lista a la cola de subprocesos lista antes de que la lista esté completamente vacía. Esto puede provocar un comportamiento imprevisible en la aplicación.
Si más de un llamador intenta recuperar subprocesos de una lista de finalización compartida, solo el primer llamador recupera los subprocesos. Para los autores de llamadas posteriores, la función DequeueUmsCompletionListItems devuelve correctamente, pero el parámetro UmsThreadList se establece en NULL.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 7 (solo 64 bits) [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 R2 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | winbase.h (incluya Windows.h) |
Library | Kernel32.lib |
Archivo DLL | Kernel32.dll |
Conjunto de API | api-ms-win-core-ums-l1-1-0 (introducido en Windows 7) |