Introduzione agli oggetti Framework
Le interfacce fornite da Windows Driver Frameworks (WDF) ai driver sono basate su oggetti. Il framework definisce diversi oggetti. Questi oggetti esportano metodi (funzioni) e proprietà (dati) a cui possono accedere i driver. Gli oggetti Framework avviano anche eventi, che possono supportare i driver fornendo funzioni di callback degli eventi.
I driver basati su framework non accedono mai direttamente agli oggetti framework. I driver fanno invece riferimento agli oggetti tramite handle, che il driver passa come input ai metodi oggetto.
Tutti gli oggetti framework hanno le caratteristiche seguenti:
Conteggio riferimenti
Il framework gestisce un conteggio del numero di riferimenti a ogni oggetto. Quando il framework crea un oggetto, imposta il numero di riferimenti dell'oggetto su uno. Al termine dell'uso di un oggetto, il framework decreta il conteggio dei riferimenti. Il framework non può eliminare l'oggetto fino a quando il conteggio dei riferimenti non viene decrementato su zero, in modo che i driver possano impedire l'eliminazione di un oggetto incrementando il numero di riferimenti.
Spazio di contesto
I driver basati su framework possono creare uno spazio di contesto specifico dell'oggetto per ogni oggetto framework ricevuto o creato dal driver. I driver devono archiviare tutti i dati specifici dell'oggetto nello spazio di contesto di un oggetto. Per altre informazioni sullo spazio del contesto, vedere Framework Object Context Space.
Funzioni di callback di eliminazione
I driver possono registrare funzioni di callback che il framework chiama quando elimina un oggetto. Le funzioni di callback possono rimuovere le risorse assegnate dal driver, ad esempio allocazioni di memoria specifiche dell'oggetto. Per altre informazioni su queste funzioni di callback, vedere Ciclo di vita dell'oggetto Framework.
Oggetto padre
Tutti gli oggetti framework possono avere un oggetto padre. Il framework designa un oggetto padre predefinito per la maggior parte degli oggetti. Quando un driver crea un oggetto, può designare un oggetto padre che esegue l'override dell'oggetto padre predefinito dell'oggetto. Per designare l'oggetto padre di un oggetto, i driver impostano il membro ParentObjectdella struttura WDF_OBJECT_ATTRIBUTES dell'oggetto. Per alcuni tipi di oggetti, i driver non possono eseguire l'override dell'oggetto padre predefinito. Quando il framework o un driver elimina un oggetto padre, il framework elimina anche gli elementi figlio dell'oggetto padre.
Per una panoramica di tutti gli oggetti definiti da WDF, vedere Riepilogo degli oggetti Framework.