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一起指定。 |
傳回值
例程會傳回其中一個狀態代碼:
傳回碼 | 描述 |
---|---|
|
NvToken 是無效的指標或令牌。 |
|
要求成功。 |
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 10 版本 1903 |
標頭 | ntddk.h |
IRQL | DPC_LEVEL |