共用方式為


WdfMemoryCreateFromLookaside 函式 (wdfmemory.h)

[僅適用於 KMDF]

WdfMemoryCreateFromLookaside 方法會建立架構記憶體物件,並從指定的 lookaside 清單中取得記憶體緩衝區。

語法

NTSTATUS WdfMemoryCreateFromLookaside(
  [in]  WDFLOOKASIDE Lookaside,
  [out] WDFMEMORY    *Memory
);

參數

[in] Lookaside

呼叫 WdfLookasideListCreate取得之架構 lookaside-list 物件的句柄。

[out] Memory

接收新架構記憶體物件句柄之位置的指標。

返回值

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

回傳碼 說明
STATUS_INVALID_PARAMETER
偵測到無效的參數。
資源不足狀態
記憶體不足。
 

此方法也可能 傳回其他NTSTATUS 值。

如果驅動程式提供無效的物件句柄,就會發生錯誤檢查。

備註

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

架構會提供表示緩衝區之內存物件的句柄。 當架構建立記憶體物件時,它會使用驅動程式在呼叫 WdfMemoryCreateFromLookaside時所提供的物件屬性。

當您的驅動程式使用從 lookaside 清單中取得的記憶體物件完成時,驅動程式必須呼叫 WdfObjectDelete,才能將記憶體物件傳回 lookaside 列表。

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

如果 lookaside-list 緩衝區是從可分頁的記憶體集區配置,則必須在 IRQL <= APC_LEVEL 呼叫 WdfMemoryCreateFromLookaside 方法。 否則,可以在 IRQL <= DISPATCH_LEVEL呼叫 方法。

範例

下列程式代碼範例會建立外觀清單,並將清單的句柄儲存在驅動程式定義的裝置對象內容空間中。 然後,驅動程式會從 lookaside 清單中取得緩衝區。

PDRIVER_CONTEXT  driverContext;
WDFMEMORY  memHandle;

driverContext = GetDriverContext(driver);

status = WdfLookasideListCreate(
                                WDF_NO_OBJECT_ATTRIBUTES,
                                sizeof(MY_LOOKASIDE_BUFFER),
                                NonPagedPool,
                                WDF_NO_OBJECT_ATTRIBUTES,
                                MY_POOL_TAG,
                                &driverContext->LookasideListHandle
                                );
...
status = WdfMemoryCreateFromLookaside(
                                      driverContext->LookasideListHandle,
                                      &memHandle
                                      );

需求

要求 價值
目標平臺 普遍
最低 KMDF 版本 1.0
標題 wdfmemory.h (包括 Wdf.h)
程式庫 Wdf01000.sys (請參閱架構連結庫版本控制。)
IRQL 請參閱一節。
DDI 合規性規則 DriverCreate(kmdf)

另請參閱

WdfLookasideListCreate

WdfMemoryCreate

WdfMemoryCreatePreallocated

WdfObjectDelete