WdfMemoryGetBuffer 関数 (wdfmemory.h)
[KMDF と UMDF に適用]
WdfMemoryGetBuffer メソッドは、指定されたメモリ オブジェクトに関連付けられているバッファーへのポインターを返します。
構文
PVOID WdfMemoryGetBuffer(
[in] WDFMEMORY Memory,
[out, optional] size_t *BufferSize
);
パラメーター
[in] Memory
フレームワーク メモリ オブジェクトへのハンドル。
[out, optional] BufferSize
メモリ バッファーのサイズをバイト単位で受け取る場所へのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。
戻り値
WdfMemoryGetBuffer は 、メモリ バッファーへのポインターを返します。
ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。
注釈
フレームワーク メモリ オブジェクトの詳細については、「メモリ バッファーの使用」を参照してください。
WdfMemoryGetBuffer は、任意の IRQL で呼び出すことができます。
例
次のコード例は、kmdf_fx2 サンプル ドライバーの EvtUsbTargetPipeReadComplete コールバック関数に基づいています。 この例では、コールバック関数が受け取るメモリ オブジェクトに関連付けられているバッファーを取得します。 この例では、ドライバーが定義したデバイス オブジェクト コンテキスト空間にバッファーからデータをコピーします。
VOID
OsrFxEvtUsbInterruptPipeReadComplete(
WDFUSBPIPE Pipe,
WDFMEMORY Buffer,
size_t NumBytesTransferred,
WDFCONTEXT Context
)
{
PUCHAR switchState = NULL;
WDFDEVICE device;
PDEVICE_CONTEXT pDeviceContext = Context;
device = WdfObjectContextGetObject(pDeviceContext);
switchState = WdfMemoryGetBuffer(Buffer, NULL);
pDeviceContext->CurrentSwitchState = *switchState;
}
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.0 |
最小 UMDF バージョン | 2.0 |
Header | wdfmemory.h (Wdf.h を含む) |
Library | Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF) |
IRQL | 任意のレベル |
DDI コンプライアンス規則 | DriverCreate(kmdf)、 MemAfterReqCompletedIntIoctlA(kmdf)、 MemAfterReqCompletedIoctlA(kmdf)、 MemAfterReqCompletedReadA(kmdf)、 MemAfterReqCompletedWriteA(kmdf) |