Condividi tramite


Introduzione agli oggetti framework

Le interfacce fornite da Windows Driver Framework (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 eventianche, che i driver possono supportare fornendo funzioni di callback per gli eventi.

I driver basati su framework non accedono mai direttamente agli oggetti framework. Invece, i driver fanno riferimento agli oggetti tramite i handle , che il driver passa come input ai metodi dell'oggetto.

Tutti gli oggetti framework presentano le caratteristiche seguenti:

conteggio dei riferimenti
Il framework gestisce un conteggio del numero di riferimenti a ogni oggetto. Quando il framework crea un oggetto, imposta il conteggio dei riferimenti dell'oggetto su uno. Al termine dell'utilizzo di un oggetto, il framework decrementa il conteggio dei riferimenti. Il framework non può eliminare l'oggetto finché il conteggio dei riferimenti non viene decrementato su zero, quindi i driver possono impedire l'eliminazione di un oggetto incrementando il numero di riferimenti.

spazio del 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 per l'eliminazione
I driver possono registrare funzioni di callback chiamate dal framework durante l'eliminazione di 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 Framework Object Life Cycle.

oggetto principale
Tutti gli oggetti framework possono avere un oggetto padre. Il framework definisce 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 ParentObject della struttura WDF_OBJECT_ATTRIBUTES dell'oggetto. Per alcuni tipi di oggetto, 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.