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
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) |