WDF_MEMORY_DESCRIPTOR_INIT_HANDLE関数 (wdfmemory.h)
[KMDF と UMDF に適用]
WDF_MEMORY_DESCRIPTOR_INIT_HANDLE関数は、指定されたフレームワーク メモリ オブジェクトを記述するように、WDF_MEMORY_DESCRIPTOR構造体を初期化します。
構文
void WDF_MEMORY_DESCRIPTOR_INIT_HANDLE(
[out] PWDF_MEMORY_DESCRIPTOR Descriptor,
[in] WDFMEMORY Memory,
[in, optional] PWDFMEMORY_OFFSET Offsets
);
パラメーター
[out] Descriptor
WDF_MEMORY_DESCRIPTOR構造体へのポインター。
[in] Memory
フレームワーク メモリ オブジェクトへのハンドル。
[in, optional] Offsets
WDFMEMORY_OFFSET構造体へのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。
戻り値
なし
解説
WDF_MEMORY_DESCRIPTOR_INIT_HANDLE関数は、指定したWDF_MEMORY_DESCRIPTOR構造体をゼロにし、構造体の Type メンバーを WdfMemoryDescriptorTypeHandle に設定します。 次に、構造体の u.HandleType.Memory メンバーと u.HandleType.Offsets メンバーをそれぞれ Memory パラメーターと Offsets パラメーターで指定した値に設定します。
例
次のコード例では、I/O 要求の入力バッファーを表すフレームワーク メモリ オブジェクトへのハンドルを取得します。 この例では、メモリ オブジェクト ハンドルを使用して 、WDF_MEMORY_DESCRIPTOR 構造体を初期化します。 次に、 WDF_USB_CONTROL_SETUP_PACKET 構造体を初期化し、USB コントロール転送要求を I/O ターゲットに送信します。
WDFMEMORY memory;
WDF_MEMORY_DESCRIPTOR memDesc;
WDF_USB_CONTROL_SETUP_PACKET controlSetupPacket;
NTSTATUS status;
status = WdfRequestRetrieveInputMemory(
Request,
&memory
);
if (!NT_SUCCESS(status)) {
break;
}
WDF_MEMORY_DESCRIPTOR_INIT_HANDLE(
&memDesc,
memory,
NULL
);
WDF_USB_CONTROL_SETUP_PACKET_INIT_VENDOR(
&controlSetupPacket,
BmRequestHostToDevice,
BmRequestToDevice,
USBFX2LK_SET_BARGRAPH_DISPLAY,
0,
0
);
status = WdfUsbTargetDeviceSendControlTransferSynchronously(
pDevContext->UsbDevice,
NULL,
NULL,
&controlSetupPacket,
&memDesc,
(PULONG)&bytesTransferred
);
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.0 |
最小 UMDF バージョン | 2.0 |
Header | wdfmemory.h (Wdf.h を含む) |
DDI コンプライアンス規則 | MemAfterReqCompletedIntIoctlA(kmdf), MemAfterReqCompletedIoctlA(kmdf), MemAfterReqCompletedReadA(kmdf), MemAfterReqCompletedWriteA(kmdf) |