WdfLo一sideListCreate 函式 (wdfmemory.h)

[僅適用于 KMDF]

WdfLo在sideListCreate方法會建立 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

WDF_OBJECT_ATTRIBUTES結構的指標,其中包含新 lookaside-list 物件的物件屬性。 這個參數是選擇性的,而且可以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 物件控制碼之位置的指標。

傳回值

如果作業成功,WdfLosideListCreate 會傳回STATUS_SUCCESS。 否則,這個方法可能會傳回下列其中一個值:

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

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

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

備註

在驅動程式呼叫 WdfLo在sideListCreate 以建立 lookaside-list 物件之後,驅動程式可以呼叫 WdfMemoryCreateFromLo以 從 lookaside 清單取得緩衝區。

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

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

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

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

範例

如需使用 WdfLo一sideListCreate的程式碼範例,請參閱 WdfMemoryCreateFromLo,side

必要條件

   
目標平臺 環球
最低 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

WdfMemoryCreateFromLo在side