共用方式為


判斷 UMDF 驅動程式為何耗用過多的記憶體

警告

UMDF 2 是最新版的 UMDF,並取代 UMDF 1。 所有新的 UMDF 驅動程式都應該使用 UMDF 2 來撰寫。 未將新功能新增至 UMDF 1,而且較新版本的 Windows 10 上不支援 UMDF 1。 通用 Windows 驅動程式必須使用 UMDF 2。

封存的 UMDF 1 範例可在Windows 11 22H2 版 - 2022 年 5 月驅動程式範例更新中找到。

如需詳細資訊,請參閱使用 UMDF 消費者入門

本主題描述如何使用 Wudfext.dll 偵錯工具延伸模組搭配 User-Mode Driver Framework (UMDF) 第 1 版驅動程式,以判斷 UMDF 驅動程式為何耗用過多的記憶體。

從 UMDF 第 2 版開始,您應該改用 Wdfkd.dll 偵錯工具延伸模組。 如需詳細資訊,請參閱 Windows Driver Framework Extensions (Wdfkd.dll)

若要調查記憶體使用量,請使用下列步驟:

  1. 使用 !wudfext.wudfobject UMDF 偵錯工具延伸模組來檢視物件樹狀結構中的未處理物件。

    !wudfext.wudfobject延伸模組會顯示 WDF 物件的相關資訊,其中包含其父系和子關聯性。 如果您將 Flags 參數的位 0 設定為 1 (0x01) , !wudfext.wudfobject 會執行物件樹狀目錄的遞迴傾印,該轉儲會以您所傳遞的物件為根目錄。 若要檢視完整的物件樹狀結構,請使用下列範例命令:

    !wudfext.wudfobject < IWDFDriver* > 1

  2. 判斷您是否看到比預期更多的未完成物件。

    您的驅動程式最終可能會外泄這些物件 (,以取得有關洩漏 WDF 物件的詳細資訊,請參閱 判斷驅動程式外泄架構物件) 。

    這些物件可能位於物件樹狀結構中,因此最終會釋放。 不過,它們會不必要地累積。 這些物件可能需要: