Функция WdfMemoryGetBuffer (wdfmemory.h)

[Применимо к KMDF и UMDF]

Метод WdfMemoryGetBuffer возвращает указатель на буфер, связанный с указанным объектом памяти.

Синтаксис

PVOID WdfMemoryGetBuffer(
  [in]            WDFMEMORY Memory,
  [out, optional] size_t    *BufferSize
);

Параметры

[in] Memory

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

[out, optional] BufferSize

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

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

WdfMemoryGetBuffer возвращает указатель на буфер памяти.

Ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.

Комментарии

Дополнительные сведения об объектах памяти платформы см. в разделе Использование буферов памяти.

WdfMemoryGetBuffer можно вызвать в любом IRQL.

Примеры

Следующий пример кода основан на функции обратного вызова EvtUsbTargetPipeReadComplete в примере драйвера kmdf_fx2 . В примере получается буфер, связанный с объектом памяти, который получает функция обратного вызова. В этом примере данные копируются из буфера в пространство контекста объекта устройства, определенное драйвером.

VOID
OsrFxEvtUsbInterruptPipeReadComplete(
    WDFUSBPIPE  Pipe,
    WDFMEMORY  Buffer,
    size_t  NumBytesTransferred,
    WDFCONTEXT  Context
    )
{
    PUCHAR  switchState = NULL;
    WDFDEVICE  device;
    PDEVICE_CONTEXT  pDeviceContext = Context;

    device = WdfObjectContextGetObject(pDeviceContext);
    switchState = WdfMemoryGetBuffer(Buffer, NULL);
    pDeviceContext->CurrentSwitchState = *switchState;
}

Требования

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

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

WdfMemoryCreate

WdfMemoryCreatePreallocated

WdfObjectContextGetObject