次の方法で共有


WdfMemoryCreateFromLookaside 関数 (wdfmemory.h)

[KMDF にのみ適用]

WdfMemoryCreateFromLookaside メソッドは、フレームワーク メモリ オブジェクトを作成し、指定したルックアサイド リストからメモリ バッファーを取得します。

構文

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

パラメーター

[in] Lookaside

WdfLookasideListCreate 呼び出すことによって取得されるフレームワーク lookaside-list オブジェクトへのハンドル。

[out] Memory

新しいフレームワーク メモリ オブジェクトへのハンドルを受け取る場所へのポインター。

戻り値

WdfMemoryCreateFromLookaside 、操作が成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合、このメソッドは次のいずれかの値を返します。

リターン コード 説明
STATUS_INVALID_PARAMETER
無効なパラメーターが検出されました。
STATUS_INSUFFICIENT_RESOURCES
メモリが不足していました。
 

このメソッドは、他のNTSTATUS 値を返す場合もあります。

ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。

注釈

ドライバーが WdfLookasideListCreate 呼び出してルックアサイド リスト オブジェクトを作成した後、ドライバーは WdfMemoryCreateFromLookaside 呼び出してルックアサイド リストからバッファーを取得できます。

フレームワークは、バッファーを表すメモリ オブジェクトへのハンドルを提供します。 フレームワークは、メモリ オブジェクトを作成するときに、WdfMemoryCreateFromLookaside 呼び出されたときにドライバーが指定したオブジェクト属性を使用します。

ドライバーがルックアサイド リストから取得したメモリ オブジェクトの使用が完了したら、ドライバーは WdfObjectDelete 呼び出して、メモリ オブジェクトをルックアサイド リストに返す必要があります。

フレームワーク メモリ オブジェクトとルックアサイド リストの詳細については、「メモリ バッファーの使用」を参照してください。

ルックアサイド リスト バッファーがページング可能なメモリ プールから割り当てられている場合は、IRQL <= APC_LEVEL で WdfMemoryCreateFromLookaside メソッド 呼び出す必要があります。 それ以外の場合は、IRQL <= DISPATCH_LEVELでメソッドを呼び出すことができます。

例示

次のコード例では、ルックアサイド リストを作成し、ドライバー定義のデバイス オブジェクト コンテキスト空間にリストのハンドルを格納します。 次に、ドライバーはルックアサイド リストからバッファーを取得します。

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