[KMDF と UMDF に適用]
WdfMemoryCopyToBuffer メソッドは、指定したメモリ オブジェクトのバッファーの内容を、指定したコピー先バッファーにコピーします。
構文
NTSTATUS WdfMemoryCopyToBuffer(
[in] WDFMEMORY SourceMemory,
[in] size_t SourceOffset,
[out] PVOID Buffer,
[in] size_t NumBytesToCopyTo
);
パラメーター
[in] SourceMemory
ソース バッファーを表すフレームワーク メモリ オブジェクトへのハンドル。
[in] SourceOffset
ソース バッファーの先頭からのオフセット (バイト単位)。 コピー操作は、ソース バッファー内の指定したオフセットから開始されます。
[out] Buffer
宛先バッファーへのポインター。
[in] NumBytesToCopyTo
ソース バッファーからコピー先バッファーにコピーするバイト数。 この値は、ソース バッファーのサイズより大きくすることはできません。
戻り値
WdfMemoryCopyToBuffer 、操作が成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。
| リターン コード | 説明 |
|---|---|
|
無効なパラメーターが検出されました。 |
|
指定された SourceOffset パラメーターのバイト オフセットが大きすぎたか、NumBytesToCopyTo パラメーターがソース バッファーのサイズを超えています。 |
このメソッドは、他のNTSTATUS 値を返す場合もあります。
ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。
注釈
フレームワークでは、SourceMemory パラメーターに含めることができるソース バッファーよりも多くのバイトをコピーするドライバーを許可していません。
フレームワーク メモリ オブジェクトの詳細については、「メモリ バッファーの使用」を参照してください。
ソースバッファーまたはコピー先バッファーがページング可能メモリ プールから割り当てられた場合は、IRQL <= APC_LEVEL で WdfMemoryCopyToBuffer メソッドを呼び出す必要があります。 それ以外の場合は、任意の IRQL でメソッドを呼び出すことができます。
例示
次のコード例では、新しいバッファーを割り当て、メモリ オブジェクトのバッファーの内容を新しいバッファーにコピーします。
PVOID pOutputBuffer = NULL;
NTSTATUS status = STATUS_SUCCESS;
pOutputBuffer = ExAllocatePoolWithTag(
NonPagedPool,
MY_BUFFER_LENGTH,
MY_POOL_TAG
);
if (pOutputBuffer != NULL){
status = WdfMemoryCopyToBuffer(
outputMemoryHandle,
0,
pOutputBuffer,
MY_BUFFER_LENGTH
);
}
else{
status = STATUS_INSUFFICIENT_RESOURCES;
}
必要条件
| 要件 | 価値 |
|---|---|
| ターゲット プラットフォーム の | 普遍 |
| 最小 KMDF バージョン | 1.0 |
| UMDF の最小バージョン を する | 2.0 |
| ヘッダー | wdfmemory.h (Wdf.h を含む) |
| 図書館 | Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF) |
| IRQL | 任意のレベル (「解説」セクションを参照) |
| DDI コンプライアンス規則 を する | BufAfterReqCompletedIntIoctlA(kmdf), BufAfterReqCompletedIoctlA(kmdf), BufAfterReqCompletedReadA(kmdf), BufAfterReqCompletedWriteA(kmdf), DriverCre kmdf), MemAfterReqCompletedIntIoctlA(kmdf), MemAfterReqCompletedIoctlA(kmdf), MemAfterReqCompletedReadA(kmdf), MemAfterReqCompletedWriteA(kmdf) |
こちらもご覧ください
WdfMemoryCopyFromBuffer の