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 sie ein angegebenes Frameworkspeicherobjekt beschreibt.

Syntax

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

Parameter

[out] Descriptor

Ein Zeiger auf eine WDF_MEMORY_DESCRIPTOR-Struktur .

[in] Memory

Ein Handle für ein Frameworkspeicherobjekt.

[in, optional] Offsets

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

Rückgabewert

Keine

Bemerkungen

Die WDF_MEMORY_DESCRIPTOR_INIT_HANDLE-Funktion nullt die angegebene WDF_MEMORY_DESCRIPTOR-Struktur und legt den Type-Member der Struktur auf WdfMemoryDescriptorTypeHandle fest. Anschließend werden die Elemente u.HandleType.Memory und u.HandleType.Offsets der Struktur auf die Werte festgelegt, die die Parameter Memory und Offsets angeben.

Beispiele

Im folgenden Codebeispiel wird ein Handle für ein Frameworkspeicherobjekt abgerufen, 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
KMDF-Mindestversion 1.0
UMDF-Mindestversion 2.0
Kopfzeile wdfmemory.h (einschließen von Wdf.h)
DDI-Complianceregeln MemAfterReqCompletedIntIoctlA(kmdf), MemAfterReqCompletedIoctlA(kmdf), MemAfterReqCompletedReadA(kmdf), MemAfterReqCompletedWriteA(kmdf)

Weitere Informationen

WDFMEMORY_OFFSET

WDF_MEMORY_DESCRIPTOR

WDF_MEMORY_DESCRIPTOR_INIT_BUFFER

WDF_MEMORY_DESCRIPTOR_INIT_MDL