Framework 物件的簡介

Windows Driver Frameworks (WDF) 提供給驅動程式的介面是以物件為基礎。 架構會定義數個物件。 這些物件會匯出 方法 (函式) 和 屬性 , (驅動程式可以存取的資料) 。 架構物件也會起始 事件,驅動程式可以藉由提供事件回呼函式來支援這些事件。

架構型驅動程式永遠不會直接存取架構物件。 相反地,驅動程式會藉由 控制碼參考物件,驅動程式會將它當做輸入傳遞給物件方法。

所有架構物件都有下列特性:

參考計數
架構會維護每個物件的參考數目。 當架構建立物件時,它會將物件的參考計數設定為一個。 當架構使用物件完成時,它會遞減參考計數。 架構無法刪除物件,直到參考計數遞減為零為止,因此驅動程式可以藉由遞增其參考計數來防止刪除物件。

內容空間
架構型驅動程式可以為驅動程式接收或建立的每個架構物件建立物件特定內容空間。 驅動程式應該將所有物件特定資料儲存在物件的內容空間中。 如需內容空間的詳細資訊,請參閱 Framework 物件內容空間

刪除回呼函式
驅動程式可以註冊架構在刪除物件時所呼叫的回呼函式。 回呼函式可以移除驅動程式指派的資源,例如物件特定的記憶體配置。 如需這些回呼函式的詳細資訊,請參閱 Framework 物件生命週期

父物件
所有架構物件都可以有父物件。 架構會指定大部分物件的預設父物件。 當驅動程式建立物件時,它可以指定覆寫物件之預設父物件的父物件。 若要指定物件的父物件,驅動程式會設定物件的WDF_OBJECT_ATTRIBUTES結構的ParentObject成員。 (針對幾個物件類型,驅動程式無法覆寫預設父物件。) 當架構或驅動程式刪除父物件時,架構也會刪除父物件的子系。

如需 WDF 所定義之所有物件的概觀,請參閱 Framework 物件的摘要