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 da descrivere un oggetto di 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 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 della struttura sui valori specificati rispettivamente dai parametri Memory e Offsets.

Esempio

Nell'esempio di codice seguente viene ottenuto un handle per un oggetto memoria del framework che rappresenta il buffer di input di una richiesta di I/O. L'esempio usa 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 KMDF minima 1.0
Versione UMDF minima 2,0
Intestazione wdfmemory.h (include Wdf.h)
Regole di conformità DDI MemAfterReqCompletedIntIoctlA(kmdf), MemAfterReqCompletedIoctlA(kmdf), MemAfterReqCompletedReadA(kmdf), MemAfterReqCompletedWriteA(kmdf)

Vedi anche

WDFMEMORY_OFFSET

WDF_MEMORY_DESCRIPTOR

WDF_MEMORY_DESCRIPTOR_INIT_BUFFER

WDF_MEMORY_DESCRIPTOR_INIT_MDL