Condividi tramite


funzione WDF_MEMORY_DESCRIPTOR_INIT_HANDLE (wdfmemory.h)

[Si applica a KMDF e UMDF]

La funzione WDF_MEMORY_DESCRIPTOR_INIT_HANDLE inizializza una struttura WDF_MEMORY_DESCRIPTOR in modo che descriva un oggetto memoria framework specificato.

Sintassi

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

Parametri

[out] Descriptor

Puntatore a una struttura WDF_MEMORY_DESCRIPTOR.

[in] Memory

Handle per un oggetto memoria del framework.

[in, optional] Offsets

Puntatore a una struttura WDFMEMORY_OFFSET. Questo parametro è facoltativo e può essere NULL.

Valore restituito

Nessuno

Osservazioni:

La funzione WDF_MEMORY_DESCRIPTOR_INIT_HANDLE zero la struttura di WDF_MEMORY_DESCRIPTOR specificata e imposta il membro Type della struttura su WdfMemoryDescriptorTypeHandle. Imposta quindi i membri u.HandleType.Memory e u.HandleType.Offsets sui valori specificati rispettivamente dai parametri memoria e offset.

Esempi

Nell'esempio di codice seguente viene ottenuto un handle per un oggetto memoria framework che rappresenta il buffer di input di una richiesta di I/O. Nell'esempio viene utilizzato l'handle dell'oggetto memoria per inizializzare una struttura WDF_MEMORY_DESCRIPTOR. L'esempio inizializza quindi una struttura WDF_USB_CONTROL_SETUP_PACKET e invia una richiesta di trasferimento del controllo USB a una destinazione di 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
                                  );

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
versione minima di KMDF 1.0
versione minima di UMDF 2.0
intestazione wdfmemory.h (include Wdf.h)
regole di conformità DDI MemAfterReqCompletedIntIoctlA(kmdf), MemAfterReqCompletedIoctlA(kmdf), MemAfterReqCompletedReadA(kmdf), MemAfterReqCompletedWriteA(kmdf)

Vedere anche

WDFMEMORY_OFFSET

WDF_MEMORY_DESCRIPTOR

WDF_MEMORY_DESCRIPTOR_INIT_BUFFER

WDF_MEMORY_DESCRIPTOR_INIT_MDL