次の方法で共有


WdfMemoryCopyFromBuffer 関数 (wdfmemory.h)

[KMDF と UMDF に適用]

WdfMemoryCopyFromBuffer メソッドは、指定したソース バッファーの内容を、指定したメモリ オブジェクトのバッファーにコピーします。

構文

NTSTATUS WdfMemoryCopyFromBuffer(
  [in] WDFMEMORY DestinationMemory,
  [in] size_t    DestinationOffset,
  [in] PVOID     Buffer,
  [in] size_t    NumBytesToCopyFrom
);

パラメーター

[in] DestinationMemory

宛先バッファーを表すフレームワーク メモリ オブジェクトへのハンドル。

[in] DestinationOffset

宛先バッファーの先頭からのオフセット (バイト単位)。 コピー操作は、コピー先バッファー内の指定されたオフセットから開始されます。

[in] Buffer

ソース バッファーへのポインター。

[in] NumBytesToCopyFrom

ソース バッファーからコピー先バッファーにコピーするバイト数。 この値は、ソース バッファーのサイズより大きくすることはできません。

戻り値

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

リターン コード 説明
STATUS_INVALID_PARAMETER
無効なパラメーターが検出されました。
STATUS_INVALID_BUFFER_SIZE
指定された DestinationOffset パラメーターのバイト オフセットが大きすぎます。
STATUS_BUFFER_TOO_SMALL
宛先オフセットから始まる、DestinationOffset パラメーターが指定した宛先バッファーのサイズが、NumBytesToCopyFrom パラメーターより大きかった。
 

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

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

注釈

フレームワークは、NumBytesToCopyFrom パラメーターが指定するデータ量を受け取るのに十分な大きさのコピー先バッファーがあることを確認します。

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

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

例示

次のコード例では、I/O 要求の出力バッファーを表すフレームワーク メモリ オブジェクトへのハンドルを取得し、別のバッファーの内容を I/O 要求の出力バッファーにコピーします。

WDFMEMORY  memoryBuffer;
NTSTATUS  status;

status = WdfRequestRetrieveOutputMemory(
                                        Request,
                                        &memoryBuffer
                                        );
if (!NT_SUCCESS(status)) {
    goto Error;
}
status = WdfMemoryCopyFromBuffer(
                                 memoryBuffer,
                                 0,
                                 deviceContext->Buffer,
                                 Length
                                 );
if (!NT_SUCCESS(status)) {
    goto Error;
}

必要条件

要件 価値
ターゲット プラットフォーム 普遍
最小 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)

こちらもご覧ください

WdfMemoryCopyToBuffer

WdfRequestRetrieveOutputMemory