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 |
---|---|
|
偵測到無效的參數。 |
|
記憶體不足。 |
如需 WdfLookasideListCreate 方法可能會傳回的其他傳回值清單,請參閱 Framework 物件建立錯誤。
這個方法也可能傳回其他 NTSTATUS值。
備註
在驅動程式呼叫 WdfLogansideListCreate 以建立 lookaside-list 物件之後,驅動程式可以呼叫 WdfMemoryCreateFromLookaside ,以從 lookaside 列表取得緩衝區。
根據預設,新的 lookaside-list 物件的父系是 WdfDriverCreate 方法所建立的架構驅動程序物件。 您可以使用 WDF_OBJECT_ATTRIBUTES 結構的 ParentObject 成員來指定不同的父代。 架構會在刪除父物件時刪除 lookaside-list 物件。 如果您的驅動程式未變更預設父代,則驅動程式在使用 物件完成時,應該刪除 lookaside-list 物件;否則,lookaside-list 物件會維持不變,直到 I/O 管理員卸除驅動程序為止。
如果您的驅動程式同時為 LookasideAttributes 和 MemoryAttributes 參數提供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) |