Share via


función WDF_MEMORY_DESCRIPTOR_INIT_HANDLE (wdfmemory.h)

[Se aplica a KMDF y UMDF]

La función WDF_MEMORY_DESCRIPTOR_INIT_HANDLE inicializa una estructura de WDF_MEMORY_DESCRIPTOR para que describa un objeto de memoria de marco especificado.

Sintaxis

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

Parámetros

[out] Descriptor

Puntero a una estructura de WDF_MEMORY_DESCRIPTOR .

[in] Memory

Identificador de un objeto de memoria de marco.

[in, optional] Offsets

Puntero a una estructura de WDFMEMORY_OFFSET . Este parámetro es opcional y puede ser NULL.

Valor devuelto

None

Observaciones

La función WDF_MEMORY_DESCRIPTOR_INIT_HANDLE cero la estructura de WDF_MEMORY_DESCRIPTOR especificada y establece el miembro Type de la estructura en WdfMemoryDescriptorTypeHandle. A continuación, establece los miembros u.HandleType.Memory y u.HandleType.Offsets de la estructura en los valores que especifican los parámetrosMemory y Offsets, respectivamente.

Ejemplos

En el ejemplo de código siguiente se obtiene un identificador de un objeto de memoria de marco que representa el búfer de entrada de una solicitud de E/S. En el ejemplo se usa el identificador de objeto de memoria para inicializar una estructura de WDF_MEMORY_DESCRIPTOR . A continuación, el ejemplo inicializa una estructura de WDF_USB_CONTROL_SETUP_PACKET y envía una solicitud de transferencia de control USB a un destino de 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
                                  );

Requisitos

Requisito Value
Plataforma de destino Universal
Versión mínima de KMDF 1.0
Versión mínima de UMDF 2.0
Encabezado wdfmemory.h (incluir Wdf.h)
Reglas de cumplimiento de DDI MemAfterReqCompletedIntIoctlA(kmdf), MemAfterReqCompletedIoctlA(kmdf), MemAfterReqCompletedReadA(kmdf), MemAfterReqCompletedWriteA(kmdf)

Consulte también

WDFMEMORY_OFFSET

WDF_MEMORY_DESCRIPTOR

WDF_MEMORY_DESCRIPTOR_INIT_BUFFER

WDF_MEMORY_DESCRIPTOR_INIT_MDL