Compartir a través de


Función MFLockSharedWorkQueue (mfapi.h)

Obtiene y bloquea una cola de trabajo compartida.

Sintaxis

HRESULT MFLockSharedWorkQueue(
  [in]      PCWSTR wszClass,
  [in]      LONG   BasePriority,
  [in, out] DWORD  *pdwTaskId,
  [out]     DWORD  *pID
);

Parámetros

[in] wszClass

Nombre de la tarea MMCSS.

[in] BasePriority

Prioridad base de los subprocesos de cola de trabajo.

Si se usa la cola de prioridad normal (wszClass=""), el valor 0 debe pasarse.

[in, out] pdwTaskId

Identificador de tarea MMCSS. En la entrada, especifique un identificador de grupo de tareas MCCSS existente o use el valor cero para crear un nuevo grupo de tareas. Si se usa la cola de prioridad regular (wszClass=""), se debe pasar NULL . En la salida, recibe el identificador real del grupo de tareas.

[out] pID

Recibe un identificador para la nueva cola de trabajo. Use este identificador al poner en cola los elementos de trabajo.

Valor devuelto

Si esta función se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.

Comentarios

Una cola de trabajo multiproceso usa un grupo de subprocesos para enviar elementos de trabajo. Cada vez que un subproceso esté disponible, pone en cola el siguiente elemento de trabajo de la cola. Los elementos de trabajo se quitan en orden primero en salir, pero los elementos de trabajo no se serializan. En otras palabras, la cola de trabajo no espera a que se complete un elemento de trabajo antes de iniciar el siguiente elemento de trabajo.

Dentro de un único proceso, la plataforma Microsoft Media Foundation crea hasta una cola multiproceso para cada tarea de Servicio de programador de clases multimedia (MMCSS). La función MFLockSharedWorkQueue comprueba si ya existe una cola de trabajo coincidente. Si no es así, la función crea una nueva cola de trabajo y registra la cola de trabajo con MMCSS. La función devuelve el identificador de tarea MMCSS (pdwTaskId) y el identificador de cola de trabajo (pID). Para poner en cola un elemento de trabajo, pase el identificador de cola de trabajo a cualquiera de las funciones siguientes:

La función MFLockSharedWorkQueue también bloquea la cola. Antes de que finalice el proceso, llame a MFUnlockWorkQueue para desbloquear la cola de trabajo.

Si se usa la cola de prioridad regular (wszClass=""), se debe pasar NULL a pdwTaskId y el valor 0 debe pasarse a BasePriority.

Requisitos

   
Cliente mínimo compatible Windows 8 [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2012 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado mfapi.h
Library Mfplat.lib
Archivo DLL Mfplat.dll

Consulte también

Funciones de Media Foundation

Mejoras en la cola de trabajo y subprocesos

Colas de trabajo