Freigeben über


WDF_MEMORY_DESCRIPTOR_INIT_HANDLE-Funktion (wdfmemory.h)

[Gilt für KMDF und UMDF]

Die WDF_MEMORY_DESCRIPTOR_INIT_HANDLE-Funktion initialisiert eine WDF_MEMORY_DESCRIPTOR Struktur, sodass ein angegebenes Frameworkspeicherobjekt beschrieben wird.

Syntax

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

Die Parameter

[out] Descriptor

Ein Zeiger auf eine WDF_MEMORY_DESCRIPTOR Struktur.

[in] Memory

Ein Handle für ein Framework-Speicherobjekt.

[in, optional] Offsets

Ein Zeiger auf eine WDFMEMORY_OFFSET Struktur. Dieser Parameter ist optional und kann NULL-werden.

Rückgabewert

Nichts

Bemerkungen

Die funktion WDF_MEMORY_DESCRIPTOR_INIT_HANDLE nullt die angegebene WDF_MEMORY_DESCRIPTOR Struktur und legt den Type member der Struktur auf WdfMemoryDescriptorTypeHandlefest. Anschließend wird die u.HandleType.Memory- der Struktur und u.HandleType.Offsets Elemente auf die Werte festgelegt, die die Memory und Offsets Parameter angeben.

Beispiele

Das folgende Codebeispiel ruft ein Handle für ein Framework-Speicherobjekt ab, das den Eingabepuffer einer E/A-Anforderung darstellt. Im Beispiel wird das Speicherobjekthandle verwendet, um eine WDF_MEMORY_DESCRIPTOR Struktur zu initialisieren. Anschließend initialisiert das Beispiel eine WDF_USB_CONTROL_SETUP_PACKET Struktur und sendet eine USB-Steuerungsübertragungsanforderung an ein E/A-Ziel.

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

Anforderungen

Anforderung Wert
Zielplattform universell
Minimale KMDF-Version 1.0
Mindest-UMDF-Version 2.0
Kopfzeile wdfmemory.h (include Wdf.h)
DDI-Complianceregeln MemAfterReqCompletedIntIoctlA(kmdf), MemAfterReqCompletedIoctlA(kmdf), MemAfterReqCompletedReadA(kmdf), MemAfterReqCompletedWriteA(kmdf)

Siehe auch

WDFMEMORY_OFFSET

WDF_MEMORY_DESCRIPTOR

WDF_MEMORY_DESCRIPTOR_INIT_BUFFER

WDF_MEMORY_DESCRIPTOR_INIT_MDL