функция 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) |