Compartir a través de


enumeración WDF_SYNCHRONIZATION_SCOPE (wdfobject.h)

[Se aplica a KMDF y UMDF]

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

Sintaxis

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 que se especificó 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 una en una. 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 pueden ejecutarse 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 queue 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 queue 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.

En el caso de 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 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 de varios procesadores.

Observaciones

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

Puede especificar un valor de SynchronizationScope solo para los objetos siguientes:

  • Objetos de controlador de marco
  • Objetos de dispositivo de marco
  • Objetos de cola de framework
El marco establece el valor SynchronizationScope de objetos de controlador de marco en WdfSynchronizationScopeNone. Establece el valor SynchronizationScope de objetos de dispositivo 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, consulte técnicas de sincronización de para controladores de Framework-Based.

Requisitos

Requisito Valor
versión mínima de KMDF 1.0
versión mínima de UMDF 2.0
encabezado wdfobject.h (incluya Wdf.h)

Consulte también

WDF_OBJECT_ATTRIBUTES