Поделиться через


функция WDF_MEMORY_DESCRIPTOR_INIT_HANDLE (wdfmemory.h)

[Относится к KMDF и UMDF]

Функция WDF_MEMORY_DESCRIPTOR_INIT_HANDLE инициализирует структуру WDF_MEMORY_DESCRIPTOR , чтобы она описывала указанный объект памяти платформы.

Синтаксис

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

Параметры

[out] Descriptor

Указатель на структуру WDF_MEMORY_DESCRIPTOR .

[in] Memory

Дескриптор объекта памяти платформы.

[in, optional] Offsets

Указатель на структуру WDFMEMORY_OFFSET . Этот параметр является необязательным и может иметь значение NULL.

Возвращаемое значение

None

Remarks

Функция WDF_MEMORY_DESCRIPTOR_INIT_HANDLE обнуляет указанную структуру WDF_MEMORY_DESCRIPTOR и задает члену структуры Typeзначение WdfMemoryDescriptorTypeHandle. Затем в элементах u.HandleType.Memory и u.HandleType.Offsets структуры задаются значения, заданные параметрами Memory и Offsets соответственно.

Примеры

В следующем примере кода получается дескриптор для объекта памяти платформы, представляющего входной буфер запроса ввода-вывода. В примере используется дескриптор объекта памяти для инициализации структуры WDF_MEMORY_DESCRIPTOR . Затем в примере инициализируется структура WDF_USB_CONTROL_SETUP_PACKET и отправляется запрос на передачу элемента управления USB в целевой объект ввода-вывода.

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

Требования

Требование Значение
Целевая платформа Универсальное
Минимальная версия KMDF 1,0
Минимальная версия UMDF 2,0
Верхняя часть wdfmemory.h (включая Wdf.h)
Правила соответствия DDI MemAfterReqCompletedIntIoctlA(kmdf), MemAfterReqCompletedIoctlA(kmdf), MemAfterReqCompletedReadA(kmdf), MemAfterReqCompletedWriteA(kmdf)

См. также раздел

WDFMEMORY_OFFSET

WDF_MEMORY_DESCRIPTOR

WDF_MEMORY_DESCRIPTOR_INIT_BUFFER

WDF_MEMORY_DESCRIPTOR_INIT_MDL