WdfLogansideListCreate 函式 (wdfmemory.h)

[僅適用於 KMDF]

WdfLookasideListCreate 方法會建立 lookaside-list 對象,驅動程式可從中取得記憶體物件。

語法

NTSTATUS WdfLookasideListCreate(
  [in, optional] PWDF_OBJECT_ATTRIBUTES LookasideAttributes,
  [in]           size_t                 BufferSize,
  [in]           POOL_TYPE              PoolType,
  [in, optional] PWDF_OBJECT_ATTRIBUTES MemoryAttributes,
  [in, optional] ULONG                  PoolTag,
  [out]          WDFLOOKASIDE           *Lookaside
);

參數

[in, optional] LookasideAttributes

包含新 lookaside-list 物件之物件屬性之 WDF_OBJECT_ATTRIBUTES 結構的指標。 此參數是選擇性的,而且可以WDF_NO_OBJECT_ATTRIBUTES。

[in] BufferSize

架構將配置給每個記憶體物件的緩衝區非零大小,以位元組為單位。

[in] PoolType

POOL_TYPE型別值,指定要配置的記憶體類型。

[in, optional] MemoryAttributes

WDF_OBJECT_ATTRIBUTES 結構的指標,其中包含驅動程式從 lookaside 清單中取得之每個記憶體物件的物件屬性。 此參數是選擇性的,而且可以WDF_NO_OBJECT_ATTRIBUTES。

[in, optional] PoolTag

每個記憶體物件緩衝區的驅動程式定義集區標籤。 調試程式會顯示此標記。 驅動程式通常會以反向 (順序指定最多四個字元的字元字串,以單引號分隔,例如 'dcba') 。 標記中每個字元的 ASCII 值必須介於 0 到 127 之間。 如果每個集區標籤是唯一的,偵錯您的驅動程式會比較容易。

如果 PoolTag 為零,架構會提供預設集區標籤,以使用驅動程式核心模式服務名稱的前四個字元。 如果服務名稱以 「WDF」 開頭, (名稱不區分大小寫,且不包含引號) ,則會使用接下來的四個字元。 如果可用的字元少於四個字元,則會使用 「FxDr」。。

針對 KMDF 1.5 版和更新版本,您的驅動程式可以使用 WDF_DRIVER_CONFIG 結構的 DriverPoolTag 成員來指定預設集區卷標。

[out] Lookaside

接收新 lookaside-list 物件句柄的位置指標。

傳回值

WdfLookasideListCreate 會在作業成功時傳回STATUS_SUCCESS。 否則,此方法可能會傳回下列其中一個值:

傳回碼 Description
STATUS_INVALID_PARAMETER
偵測到無效的參數。
STATUS_INSUFFICIENT_RESOURCES
記憶體不足。
 

如需 WdfLookasideListCreate 方法可能會傳回的其他傳回值清單,請參閱 Framework 物件建立錯誤

這個方法也可能傳回其他 NTSTATUS值

備註

在驅動程式呼叫 WdfLogansideListCreate 以建立 lookaside-list 物件之後,驅動程式可以呼叫 WdfMemoryCreateFromLookaside ,以從 lookaside 列表取得緩衝區。

根據預設,新的 lookaside-list 物件的父系是 WdfDriverCreate 方法所建立的架構驅動程序物件。 您可以使用 WDF_OBJECT_ATTRIBUTES 結構的 ParentObject 成員來指定不同的父代。 架構會在刪除父物件時刪除 lookaside-list 物件。 如果您的驅動程式未變更預設父代,則驅動程式在使用 物件完成時,應該刪除 lookaside-list 物件;否則,lookaside-list 物件會維持不變,直到 I/O 管理員卸除驅動程序為止。

如果您的驅動程式同時為 LookasideAttributesMemoryAttributes 參數提供WDF_OBJECT_ATTRIBUTES結構,而且如果兩個結構都將裝置物件指定為父物件,則裝置物件句柄必須相同。

如需架構記憶體物件和外觀清單的詳細資訊,請參閱 使用記憶體緩衝區

如果您的驅動程式指定 PoolType 參數的 PagedPool,則必須在 IRQL <= APC_LEVEL呼叫 WdfLoтsideListCreate 方法。 否則,可以在 IRQL <= DISPATCH_LEVEL呼叫 方法。

範例

如需使用 WdfLogansideListCreate 的程式代碼範例,請參閱 WdfMemoryCreateFromLookaside

規格需求

需求
目標平台 Universal
最小 KMDF 版本 1.0
標頭 wdfmemory.h (包含 Wdf.h)
程式庫 Wdf01000.sys (請參閱 Framework Library Versioning.)
IRQL 請參閱一節。
DDI 合規性規則 DriverCreate (kmdf) KmdfIrql (kmdf) KmdfIrql2 (kmdf) 、 KmdfIrqlExplicit (kmdf)

另請參閱

WDF_OBJECT_ATTRIBUTES

WdfDriverCreate

WdfMemoryCreateFromLookaside