Condividi tramite


enumerazione WDF_SYNCHRONIZATION_SCOPE (wdfobject.h)

[Si applica a KMDF e UMDF]

Il tipo di enumerazione WDF_SYNCHRONIZATION_SCOPE specifica come il framework sincronizza l'esecuzione delle funzioni di callback di un oggetto.

Sintassi

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

Costanti

 
WdfSynchronizationScopeInvalid
Valore: 0x00
Riservato per l'utilizzo nel sistema.
WdfSynchronizationScopeInheritFromParent
Il framework usa il valore dell'ambito di sincronizzazione specificato per l'oggetto padre dell'oggetto. Questo valore è l'impostazione predefinita se un driver non specifica un valore tipizzato WDF_SYNCHRONIZATION_SCOPE.
WdfSynchronizationScopeDevice
Il framework sincronizza l'esecuzione delle funzioni di callback degli eventi di tutti gli oggetti coda e file sottostanti un oggetto dispositivo nella gerarchia degli oggetti del driver.

Inoltre, se il driver imposta il membro AutomaticSerialization su TRUE nella struttura di configurazione per un oggetto interrupt, DPC, elemento di lavoro o timer sottostante lo stesso oggetto dispositivo, il framework sincronizza anche le funzioni di callback dell'oggetto.

Il framework ottiene il blocco di sincronizzazione dell'oggetto dispositivo prima di chiamare una funzione di callback. Pertanto, queste funzioni di callback vengono eseguite una alla volta. Tuttavia, se il driver crea più oggetti dello stesso tipo, ma in oggetti dispositivo diversi, le funzioni di callback degli eventi potrebbero essere eseguite simultaneamente in un sistema multiprocessore.
WdfSynchronizationScopeQueue
Questo valore influisce solo sugli oggetti coda. Il framework sincronizza le funzioni di callback degli eventi dell'oggetto coda in modo che ne venga eseguito solo uno alla volta.

Inoltre, se il driver imposta AutomaticSerialization su TRUE nella struttura di configurazione per un oggetto interrupt, DPC, elemento di lavoro o timer sottostante l'oggetto coda o il relativo oggetto dispositivo padre, il framework sincronizza anche le funzioni di callback dell'oggetto.

Il framework ottiene il blocco di sincronizzazione dell'oggetto coda prima di chiamare qualsiasi funzione di callback appartenente all'oggetto .

Se il driver crea più oggetti coda, le funzioni di callback degli eventi potrebbero essere eseguite simultaneamente in un sistema multiprocessore.

Per le versioni framework 1.9 e successive, un driver deve impostare WdfSynchronizationScopeQueue per singoli oggetti coda. Per usare questo ambito con le versioni precedenti del framework, il driver deve impostare WdfSynchronizationScopeQueue per l'oggetto dispositivo padre e WdfSynchronizationScopeInheritFromParent per l'oggetto coda.
WdfSynchronizationScopeNone
Il framework non sincronizza le funzioni di callback degli eventi dell'oggetto, pertanto le funzioni di callback potrebbero essere eseguite simultaneamente in un sistema multiprocessore.

Commenti

I driver usano il tipo di enumerazione WDF_SYNCHRONIZATION_SCOPE per specificare il membro SynchronizationScope della struttura WDF_OBJECT_ATTRIBUTES di un oggetto.

È possibile specificare un valore SynchronizationScope solo per gli oggetti seguenti:

  • Oggetti driver framework
  • Oggetti dispositivo framework
  • Oggetti coda del framework
Il framework imposta il valore SynchronizationScope degli oggetti driver del framework su WdfSynchronizationScopeNone. Imposta il valore SynchronizationScope degli oggetti dispositivo framework e degli oggetti coda del framework su WdfSynchronizationScopeInheritFromParent.

Per altre informazioni sulla sincronizzazione delle funzioni di callback degli eventi di un driver, vedere Tecniche di sincronizzazione per i driver Framework-Based.

Requisiti

Requisito Valore
Versione KMDF minima 1,0
Versione UMDF minima 2,0
Intestazione wdfobject.h (include Wdf.h)

Vedi anche

WDF_OBJECT_ATTRIBUTES