enumeración WDF_SYNCHRONIZATION_SCOPE (wdfobject.h)

[Se aplica a KMDF y UMDF]

El tipo de enumeración WDF_SYNCHRONIZATION_SCOPE especifica cómo se sincronizará la ejecución del marco de trabajo de las funciones de devolución de llamada de eventos de un objeto.

Syntax

typedef enum _WDF_SYNCHRONIZATION_SCOPE {
  WdfSynchronizationScopeInvalid = 0x00,
  WdfSynchronizationScopeInheritFromParent,
  WdfSynchronizationScopeDevice,
  WdfSynchronizationScopeQueue,
  WdfSynchronizationScopeNone
} WDF_SYNCHRONIZATION_SCOPE;

Constantes

 
WdfSynchronizationScopeInvalid
Valor: 0x00
Reservado para uso del sistema.
WdfSynchronizationScopeInheritFromParent
El marco usa el valor de ámbito de sincronización especificado para el objeto primario del objeto. Este valor es el valor predeterminado si un controlador no especifica un valor con tipo WDF_SYNCHRONIZATION_SCOPE.
WdfSynchronizationScopeDevice
El marco sincroniza la ejecución de las funciones de devolución de llamada de eventos de todos los objetos de cola y archivo que están debajo de un objeto de dispositivo en la jerarquía de objetos del controlador.

Además, si el controlador establece el miembro AutomaticSerialization en TRUE en la estructura de configuración de un objeto de interrupción, DPC, elemento de trabajo o temporizador que está debajo del mismo objeto de dispositivo, el marco también sincroniza las funciones de devolución de llamada de ese objeto.

El marco obtiene el bloqueo de sincronización del objeto de dispositivo antes de llamar a una función de devolución de llamada. Por lo tanto, estas funciones de devolución de llamada se ejecutan de uno en uno. Sin embargo, si el controlador crea varios objetos del mismo tipo, pero en distintos objetos de dispositivo, sus funciones de devolución de llamada de eventos se pueden ejecutar simultáneamente en un sistema de varios procesadores.
WdfSynchronizationScopeQueue
Este valor solo afecta a los objetos de cola. El marco sincroniza las funciones de devolución de llamada de eventos del objeto de cola para que solo se ejecute una a la vez.

Además, si el controlador establece AutomaticSerialization en TRUE en la estructura de configuración de un objeto de interrupción, DPC, elemento de trabajo o temporizador que está debajo del objeto de cola o su objeto de dispositivo primario, el marco también sincroniza las funciones de devolución de llamada de ese objeto.

El marco obtiene el bloqueo de sincronización del objeto de cola antes de llamar a cualquier función de devolución de llamada que pertenezca al objeto .

Si el controlador crea varios objetos de cola, sus funciones de devolución de llamada de eventos se pueden ejecutar simultáneamente en un sistema de varios procesadores.

Para las versiones 1.9 y posteriores del marco, un controlador debe establecer WdfSynchronizationScopeQueue para objetos de cola individuales. Para usar este ámbito con versiones anteriores del marco, el controlador debe establecer WdfSynchronizationScopeQueue para el objeto de dispositivo primario y WdfSynchronizationScopeInheritFromParent para el objeto de cola.
WdfSynchronizationScopeNone
El marco de trabajo no sincroniza las funciones de devolución de llamada de eventos del objeto, por lo que las funciones de devolución de llamada se pueden ejecutar simultáneamente en un sistema multiprocesador.

Comentarios

Los controladores usan el tipo de enumeración WDF_SYNCHRONIZATION_SCOPE para especificar el miembro SynchronizationScope de la estructura WDF_OBJECT_ATTRIBUTES de un objeto.

Puede especificar un valor SynchronizationScope solo para los objetos siguientes:

  • Objetos de controlador de marco
  • Objetos de dispositivo de marco
  • Objetos de cola de marco
El marco establece el valor SynchronizationScope de los objetos de controlador de marco en WdfSynchronizationScopeNone. Establece el valor SynchronizationScope de objetos de dispositivo de marco y objetos de cola de marco en WdfSynchronizationScopeInheritFromParent.

Para obtener más información sobre la sincronización de las funciones de devolución de llamada de eventos de un controlador, vea Técnicas de sincronización para controladores de Framework-Based.

Requisitos

Requisito Value
Versión mínima de KMDF 1.0
Versión mínima de UMDF 2.0
Encabezado wdfobject.h (incluir Wdf.h)

Consulte también

WDF_OBJECT_ATTRIBUTES