Share via


fonction WDF_MEMORY_DESCRIPTOR_INIT_HANDLE (wdfmemory.h)

[S’applique à KMDF et UMDF]

La fonction WDF_MEMORY_DESCRIPTOR_INIT_HANDLE initialise une structure de WDF_MEMORY_DESCRIPTOR afin qu’elle décrive un objet de mémoire de framework spécifié.

Syntaxe

void WDF_MEMORY_DESCRIPTOR_INIT_HANDLE(
  [out]          PWDF_MEMORY_DESCRIPTOR Descriptor,
  [in]           WDFMEMORY              Memory,
  [in, optional] PWDFMEMORY_OFFSET      Offsets
);

Paramètres

[out] Descriptor

Pointeur vers une structure WDF_MEMORY_DESCRIPTOR .

[in] Memory

Handle d’un objet de mémoire framework.

[in, optional] Offsets

Pointeur vers une structure WDFMEMORY_OFFSET . Ce paramètre est facultatif et peut être NULL.

Valeur de retour

None

Remarques

La fonction WDF_MEMORY_DESCRIPTOR_INIT_HANDLE zéro la structure WDF_MEMORY_DESCRIPTOR spécifiée et définit le membre Type de la structure sur WdfMemoryDescriptorTypeHandle. Ensuite, il définit les membres u.HandleType.Memory et u.HandleType.Offsets de la structure sur les valeurs que les paramètres Memory et Offsets spécifient, respectivement.

Exemples

L’exemple de code suivant obtient un handle pour un objet de mémoire framework qui représente la mémoire tampon d’entrée d’une demande d’E/S. L’exemple utilise le handle d’objet mémoire pour initialiser une structure WDF_MEMORY_DESCRIPTOR . Ensuite, l’exemple initialise une structure WDF_USB_CONTROL_SETUP_PACKET et envoie une demande de transfert de contrôle USB à une cible d’E/S.

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
                                  );

Configuration requise

Condition requise Valeur
Plateforme cible Universal
Version KMDF minimale 1.0
Version UMDF minimale 2.0
En-tête wdfmemory.h (include Wdf.h)
Règles de conformité DDI MemAfterReqCompletedIntIoctlA(kmdf), MemAfterReqCompletedIoctlA(kmdf), MemAfterReqCompletedReadA(kmdf), MemAfterReqCompletedWriteA(kmdf)

Voir aussi

WDFMEMORY_OFFSET

WDF_MEMORY_DESCRIPTOR

WDF_MEMORY_DESCRIPTOR_INIT_BUFFER

WDF_MEMORY_DESCRIPTOR_INIT_MDL