WdfMemoryCreateFromLo一side 函式 (wdfmemory.h)
[僅適用於 KMDF]
WdfMemoryCreateFromLo一side 方法會建立架構記憶體物件,並從指定的 lookaside 清單中取得記憶體緩衝區。
語法
NTSTATUS WdfMemoryCreateFromLookaside(
[in] WDFLOOKASIDE Lookaside,
[out] WDFMEMORY *Memory
);
參數
[in] Lookaside
呼叫 WdfLo以sidesideListCreate 取得之架構 lookaside-list 物件的句柄。
[out] Memory
接收新架構記憶體物件句柄之位置的指標。
傳回值
如果作業成功,WdfMemoryCreateFromLo以side 傳回STATUS_SUCCESS。 否則,這個方法會傳回下列其中一個值:
傳回碼 | Description |
---|---|
|
偵測到無效的參數。 |
|
記憶體不足。 |
這個方法也可能傳回其他 NTSTATUS值。
如果驅動程式提供無效的物件句柄,就會發生錯誤檢查。
備註
在驅動程式呼叫 WdfLo在sideListCreate 以建立 lookaside-list 物件之後,驅動程式可以呼叫 WdfMemoryCreateFromLo以從 lookaside 清單取得緩衝區。
架構會提供代表緩衝區之內存物件的句柄。 當架構建立記憶體物件時,它會使用驅動程式在呼叫 WdfMemoryCreateFromLo一side 時所提供的物件屬性。
當您的驅動程式使用從 lookaside 清單取得的記憶體物件完成時,驅動程式必須呼叫 WdfObjectDelete ,才能將記憶體物件傳回 lookaside 清單。
如需架構記憶體物件和 lookaside 清單的詳細資訊,請參閱 使用記憶體緩衝區。
如果要從可分頁記憶體集區配置 lookaside-list 緩衝區,則必須在 IRQL <= APC_LEVEL呼叫 WdfMemoryCreateFromLomountside 方法。 否則,可以在 IRQL <= DISPATCH_LEVEL呼叫 方法。
範例
下列程式代碼範例會建立 lookaside 清單,並將清單的句柄儲存在驅動程式定義的裝置物件內容空間中。 然後,驅動程式會從 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
);
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
最低 KMDF 版本 | 1.0 |
標頭 | wdfmemory.h (包含 Wdf.h) |
程式庫 | Wdf01000.sys (請參閱 Framework Library Versioning.) |
IRQL | 請參閱一節。 |
DDI 合規性規則 | DriverCreate (kmdf) |