перечисление WDF_SYNCHRONIZATION_SCOPE (wdfobject.h)
[Применимо к KMDF и UMDF]
Тип перечисления WDF_SYNCHRONIZATION_SCOPE указывает, как платформа будет синхронизировать выполнение функций обратного вызова событий объекта.
Синтаксис
typedef enum _WDF_SYNCHRONIZATION_SCOPE {
WdfSynchronizationScopeInvalid = 0x00,
WdfSynchronizationScopeInheritFromParent,
WdfSynchronizationScopeDevice,
WdfSynchronizationScopeQueue,
WdfSynchronizationScopeNone
} WDF_SYNCHRONIZATION_SCOPE;
Константы
WdfSynchronizationScopeInvalid Значение: 0x00 Зарезервировано для системного использования. |
WdfSynchronizationScopeInheritFromParent Платформа использует значение области синхронизации, указанное для родительского объекта объекта. Это значение по умолчанию, если драйвер не задает WDF_SYNCHRONIZATION_SCOPE типизированное значение. |
WdfSynchronizationScopeDevice Платформа синхронизирует выполнение функций обратного вызова события всех объектов очереди и файлов, которые находятся под объектом устройства в иерархии объектов драйвера. Кроме того, если драйвер задает элемент AutomaticSerialization значение TRUE в структуре конфигурации для прерывания, DPC, рабочего элемента или объекта таймера, который находится под тем же объектом устройства, платформа также синхронизирует функции обратного вызова этого объекта. Платформа получает блокировку синхронизации объекта устройства перед вызовом функции обратного вызова. Таким образом, эти функции обратного вызова выполняются одновременно. Однако если драйвер создает несколько объектов одного типа, но в разных объектах устройства их функции обратного вызова событий могут выполняться одновременно в многопроцессорной системе. |
WdfSynchronizationScopeQueue Это значение влияет только на объекты очереди. Платформа синхронизирует функции обратного вызова событий объекта очереди, чтобы одновременно выполнялось только один. Кроме того, если драйвер задает автоматической для TRUE в структуре конфигурации для прерывания, DPC, рабочего элемента или таймера, который находится под объектом очереди или родительским объектом устройства, платформа также синхронизирует функции обратного вызова этого объекта. Платформа получает блокировку синхронизации объекта очереди перед вызовом любых функций обратного вызова, принадлежащих объекту. Если драйвер создает несколько объектов очереди, их функции обратного вызова событий могут выполняться параллельно в многопроцессорной системе. Для платформ версии 1.9 и более поздних версий драйвер должен задать WdfSynchronizationScopeQueue для отдельных объектов очереди. Чтобы использовать эту область с более ранними версиями платформы, драйвер должен задать WdfSynchronizationScopeQueue для родительского объекта устройства и WdfSynchronizationScopeInheritFromParent для объекта очереди. |
WdfSynchronizationScopeNone Платформа не синхронизирует функции обратного вызова объекта, поэтому функции обратного вызова могут выполняться параллельно в многопроцессорной системе. |
Замечания
Драйверы используют тип перечисления WDF_SYNCHRONIZATION_SCOPE, чтобы указать элемент SynchronizationScope структуры WDF_OBJECT_ATTRIBUTES объекта.
Можно указать значение SynchronizationScope только для следующих объектов:
- Объекты драйвера Платформы
- Объекты устройств Framework
- Объекты очереди Платформы
Дополнительные сведения о синхронизации функций обратного вызова событий драйвера см. в методах синхронизации для Framework-Based драйверов.
Требования
Требование | Ценность |
---|---|
минимальная версия KMDF | 1.0 |
минимальная версия UMDF | 2.0 |
Заголовок | wdfobject.h (include Wdf.h) |