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


Функция 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 (include Wdf.h)
Библиотека Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL Любой уровень
правил соответствия DDI DriverCreate(kmdf), MemAfterReqCompletedIntIoctlA(kmdf), MemAfterReqCompletedIoctlA(kmdf), MemAfterReqCompletedReadA(kmdf), MemAfterReqCompletedWriteA(kmdf)

См. также

WdfMemoryCreate

WdfMemoryCreatePreallocated

WdfObjectContextGetObject