Compartilhar via


função WDF_MEMORY_DESCRIPTOR_INIT_HANDLE (wdfmemory.h)

[Aplica-se a KMDF e UMDF]

A função WDF_MEMORY_DESCRIPTOR_INIT_HANDLE inicializa uma estrutura WDF_MEMORY_DESCRIPTOR para que ela descreva um objeto de memória de estrutura especificado.

Sintaxe

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

Parâmetros

[out] Descriptor

Um ponteiro para uma estrutura WDF_MEMORY_DESCRIPTOR .

[in] Memory

Um identificador para um objeto de memória de estrutura.

[in, optional] Offsets

Um ponteiro para uma estrutura WDFMEMORY_OFFSET . Esse parâmetro é opcional e pode ser NULL.

Retornar valor

Nenhum

Comentários

A função WDF_MEMORY_DESCRIPTOR_INIT_HANDLE zerar a estrutura de WDF_MEMORY_DESCRIPTOR especificada e define o membro Type da estrutura como WdfMemoryDescriptorTypeHandle. Em seguida, ele define os membros u.HandleType.Memory e u.HandleType.Offsets da estrutura com os valores que os parâmetrosMemory e Offsets especificam, respectivamente.

Exemplos

O exemplo de código a seguir obtém um identificador para um objeto de memória de estrutura que representa o buffer de entrada de uma solicitação de E/S. O exemplo usa o identificador de objeto de memória para inicializar uma estrutura WDF_MEMORY_DESCRIPTOR . Em seguida, o exemplo inicializa uma estrutura WDF_USB_CONTROL_SETUP_PACKET e envia uma solicitação de transferência de controle USB para um 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 Valor
Plataforma de Destino Universal
Versão mínima do KMDF 1.0
Versão mínima do UMDF 2,0
Cabeçalho wdfmemory.h (inclua Wdf.h)
Regras de conformidade da DDI MemAfterReqCompletedIntIoctlA(kmdf), MemAfterReqCompletedIoctlA(kmdf), MemAfterReqCompletedReadA(kmdf), MemAfterReqCompletedWriteA(kmdf)

Confira também

WDFMEMORY_OFFSET

WDF_MEMORY_DESCRIPTOR

WDF_MEMORY_DESCRIPTOR_INIT_BUFFER

WDF_MEMORY_DESCRIPTOR_INIT_MDL