共用方式為


使用一般架構物件

一般架構物件是衍生所有其他架構物件之架構物件的架構物件。

與其他架構物件一樣,一般物件支援參考計數、內容空間、刪除回呼函式和父物件,如 Framework 物件簡介中所述。

驅動程式可以建立和使用一般架構物件。 如果您的驅動程式呼叫 WdfObjectCreate 來建立一般物件,驅動程式可以:

  • 為每個一般物件建立一或多個內容空間。

    您可以使用物件內容空間來儲存您想要與一般物件產生關聯之系統資源的相關資訊。

    如需內容空間的詳細資訊,請參閱 Framework 物件內容空間

  • 將父代指派給一般物件。

    刪除父物件時,將會刪除一般物件。 例如,如果您的驅動程式將架構裝置物件指定為其其中一個一般物件的父物件,則架構會在刪除裝置物件時刪除一般物件。

    驅動程式藉由設定物件的WDF_OBJECT_ATTRIBUTES結構之 ParentObject成員來指定物件的父物件。

  • 提供刪除回呼函式。

    驅動程式可以提供 EvtCleanupCallbackEvtDestroyCallback 函式,這可以解除配置驅動程式在建立一般物件時配置的系統資源。 例如,如果驅動程式在建立一般物件時呼叫 ExAllocatePool ,清除或終結回呼函式可以呼叫 ExFreePool

使用一般物件是管理驅動程式配置資源的便利方式。 例如,如果驅動程式將要求傳送至多個裝置,或將要求中斷為數個較小的裝置,則較高層級的驅動程式可能需要多個記憶體配置來處理收到的 I/O 要求。 驅動程式可以建立一或多個屬於所接收 I/O 要求子系的一或多個一般物件,而且可以將記憶體配置的相關資訊儲存在一般物件的內容空間中。