WdfMemoryGetBuffer 函式 (wdfmemory.h)
[適用於 KMDF 和 UMDF]
WdfMemoryGetBuffer 方法會傳回與指定記憶體對象相關聯的緩衝區指標。
語法
PVOID WdfMemoryGetBuffer(
[in] WDFMEMORY Memory,
[out, optional] size_t *BufferSize
);
參數
[in] Memory
架構記憶體物件的句柄。
[out, optional] BufferSize
接收記憶體緩衝區大小之位置的指標,以位元組為單位。 此參數是選擇性的,可以是 NULL。
傳回值
WdfMemoryGetBuffer 會傳回記憶體緩衝區的指標。
如果驅動程式提供無效的物件句柄,就會發生錯誤檢查。
備註
如需架構記憶體物件的詳細資訊,請參閱 使用記憶體緩衝區。
您可以在任何 IRQL 呼叫 WdfMemoryGetBuffer。
範例
下列程式代碼範例是以kmdf_fx2範例驅動程式中的 EvtUsbTargetPipeReadComplete 回呼函式為基礎。 此範例會取得與回呼函式接收之內存對象相關聯的緩衝區。 此範例會將數據從緩衝區複製到驅動程式已定義的裝置物件內容空間。
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;
}
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
最小 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) |