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