Bagikan melalui


Fungsi RtlFillNonVolatileMemory (ntddk.h)

RtlFillNonVolatileMemory rutin mengisi buffer tujuan non-volatil dengan nilai yang diberikan.

Sintaks

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

Parameter

NvToken

Penunjuk ke struktur buram yang memiliki informasi lebih lanjut tentang wilayah memori non-volatil yang telah dikembalikan RtlGetNonVolatileToken .

NvDestination

Penunjuk ke buffer tujuan yang tidak volatil.

Size

Menentukan panjang, dalam byte, dari operasi pengisian.

Value

UCHAR yang berisi nilai untuk mengisi buffer tujuan.

Flags

Nilai jenis ULONG yang berisi satu atau beberapa bendera berikut:

Bendera Makna
FILL_NV_MEMORY_FLAG_FLUSH Atur nilai yang disediakan, lalu bersihkan rentang tujuan. Kecuali FILL_NV_MEMORY_FLAG_NO_DRAIN ditentukan, flush diikuti dengan pengurasan. Bendera ini memastikan bahwa data tahan lama bahkan jika terjadi kehilangan daya sistem.
FILL_NV_MEMORY_FLAG_NON_TEMPORAL Lakukan memset non-temporal saat tersedia. Non-temporal berarti bahwa penembolokan data tidak diperlukan. Jika prosesor tidak mendukung operasi non-temporal untuk rentang yang lebih kecil dari ukuran bus alamat, lakukan memset reguler diikuti dengan flush dan drain. Jika prosesor mengabaikan gerakan non-temporal sama sekali, RtlSetNonVolatileMemory tidak menggantinya dengan flush dan drain. Namun, jika Windows tidak memiliki implementasi untuk arsitektur tertentu (misalnya ARM64), ganti dengan flush dan drain.
FILL_NV_MEMORY_FLAG_PERSIST Pastikan bahwa memset bertahan baik dengan membersihkan atau menggunakan gerakan non-temporal. Biasanya, sistem menggunakan pendekatan yang paling murah untuk mempertahankan data. Bendera ini memastikan bahwa data tahan lama bahkan jika terjadi kehilangan daya sistem. Diabaikan ketika FILL_NV_MEMORY_FLAG_PERSIST ditentukan.
FILL_NV_MEMORY_FLAG_NO_DRAIN Memberi tahu rutinitas untuk tidak menunggu flush selesai. Harus ditentukan bersama dengan FILL_NV_MEMORY_FLAG_FLUSH dan tanpa FILL_NV_MEMORY_FLAG_PERSIST atau FILL_NV_MEMORY_FLAG_NON_TEMPORAL.

Mengembalikan nilai

Rutinitas mengembalikan salah satu kode status:

Menampilkan kode Deskripsi
STATUS_INVALID_PARAMETER
NvToken adalah pointer atau token yang tidak valid.
STATUS_SUCCESS
Permintaan berhasil.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 10, versi 1903
Header ntddk.h
IRQL DPC_LEVEL