共用方式為


RtlFillNonVolatileMemory 函式 (ntddk.h)

RtlFillNonVolatileMemory 指定值填滿非揮發性目的地緩衝區的例程。

語法

NTSYSAPI NTSTATUS RtlFillNonVolatileMemory(
  PVOID       NvToken,
  VOID        *NvDestination,
  SIZE_T      Size,
  const UCHAR Value,
  ULONG       Flags
);

參數

NvToken

不透明結構的指標,其具有 RtlGetNonVolatileToken 傳回之非揮發性記憶體區域的詳細資訊。

NvDestination

非揮發性目的地緩衝區的指標。

Size

指定填滿作業的長度,以位元組為單位。

Value

UCHAR,其中包含要填入目的地緩衝區的值。

Flags

ULONG 類型的值,包含下列一或多個旗標:

標誌 意義
FILL_NV_MEMORY_FLAG_FLUSH 設定提供的值,然後排清目的地範圍。 除非指定FILL_NV_MEMORY_FLAG_NO_DRAIN,否則排清會接著清空。 此旗標可確保即使發生系統電源遺失,數據也是持久的。
FILL_NV_MEMORY_FLAG_NON_TEMPORAL 當可用時,請執行非時態性 memset。 非時態表示不需要數據快取。 如果處理器不支援小於位址總線大小的範圍的非時態運算,請執行一般 memset,後面接著排清和清空。 如果處理器完全忽略非時態性移動,RtlSetNonVolatileMemory 不會將它取代為 flush 和 drain。 不過,如果 Windows 沒有指定架構的實作(例如 ARM64),請將它取代為排清和清空。
FILL_NV_MEMORY_FLAG_PERSIST 藉由排清或使用非時態性移動,確定 memset 會保存。 一般而言,系統會使用成本最低的方法來保存數據。 此旗標可確保即使在系統電源遺失的情況下,數據也是持久的。 指定FILL_NV_MEMORY_FLAG_PERSIST時忽略。
FILL_NV_MEMORY_FLAG_NO_DRAIN 告知例程不要等待排清完成。 必須與FILL_NV_MEMORY_FLAG_FLUSH和不含FILL_NV_MEMORY_FLAG_PERSIST或FILL_NV_MEMORY_FLAG_NON_TEMPORAL一起指定。

傳回值

例程會傳回其中一個狀態代碼:

傳回碼 描述
STATUS_INVALID_PARAMETER
NvToken 是無效的指標或令牌。
STATUS_SUCCESS
要求成功。

要求

要求 價值
最低支援的用戶端 Windows 10 版本 1903
標頭 ntddk.h
IRQL DPC_LEVEL