共用方式為


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)

另請參閱

WdfMemoryCreate

WdfMemoryCreatePreallocated

WdfObjectContextGetObject