次の方法で共有


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)

こちらもご覧ください

WDFMEMORY_OFFSET

WDF_MEMORY_DESCRIPTOR

WDF_MEMORY_DESCRIPTOR_INIT_BUFFER

WDF_MEMORY_DESCRIPTOR_INIT_MDL