Bagikan melalui


Deskripsi DEVICE_DSM_ACTION

Halaman ini menjelaskan konstanta DEVICE_DSM_ACTION yang dapat digunakan untuk melakukan tindakan manajemen himpunan data (DSM) pada himpunan data perangkat. Konstanta ini didefinisikan dalam ntddstor.h. Tindakan yang diidentifikasi sebagai tidak merusak tidak akan mengubah data apa pun. Lihat Gambaran Umum Manajemen Himpunan Data untuk informasi tentang cara tindakan DSM diproses.

Konstanta DEVICE_DSM_ACTION Deskripsi
DeviceDsmAction_None Hanya untuk tujuan inisialisasi struktur.
DeviceDsmAction_Trim Driver akan melakukan operasi pemangkasan.
DeviceDsmAction_Notification Nondestructive. Driver akan melakukan operasi pemberitahuan. Untuk tindakan ini, blok parameter segera setelah struktur DEVICE_DSM_INPUT diformat sebagai struktur DEVICE_DSM_NOTIFICATION_PARAMETERS . Didukung di Windows 7 dan versi yang lebih baru.
DeviceDsmAction_OffloadRead Nondestructive. Driver melakukan operasi baca offload. Untuk tindakan ini, blok parameter segera setelah struktur DEVICE_DSM_INPUT diformat sebagai struktur DEVICE_DSM_OFFLOAD_READ_PARAMETERS . Output terdiri dari struktur DEVICE_DSM_OUTPUT , diikuti oleh struktur STORAGE_OFFLOAD_READ_OUTPUT . Didukung dalam versi Windows 8 dan yang lebih baru.
DeviceDsmAction_OffloadWrite Driver akan melakukan operasi tulis offload. Untuk tindakan ini, blok parameter segera setelah struktur DEVICE_DSM_INPUT diformat sebagai struktur DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS . Output terdiri dari struktur DEVICE_DSM_OUTPUT , diikuti oleh struktur STORAGE_OFFLOAD_WRITE_OUTPUT . Didukung dalam versi Windows 8 dan yang lebih baru.
DeviceDsmAction_Allocation Nondestructive. Driver akan melakukan operasi provisi blok logis. Rentang blok logis ditentukan dalam satu struktur DEVICE_DSM_RANGE . Didukung dalam versi Windows 8 dan yang lebih baru.
DeviceDsmAction_Repair Nondestructive. Hanya untuk penggunaan internal.
DeviceDsmAction_Scrub Nondestructive. Hanya untuk penggunaan internal.
DeviceDsmAction_DrtQuery Nondestructive. Hanya untuk penggunaan internal.
DeviceDsmAction_DrtClear Nondestructive. Hanya untuk penggunaan internal.
DeviceDsmAction_DrtDisable Nondestructive. Hanya untuk penggunaan internal.
DeviceDsmAction_TieringQuery Nondestructive. Hanya untuk penggunaan internal.
DeviceDsmAction_Map Nondestructive. Hanya untuk penggunaan internal.
DeviceDsmAction_RegenerateParity Nondestructive. Hanya untuk penggunaan internal.
DeviceDsmAction_NvCache_Change_Priority Nondestructive. Driver akan mengubah prioritas penembolokan dari rentang blok logis yang ditentukan. Prioritas target baru diatur dalam struktur DEVICE_DSM_NVCACHE_CHANGE_PRIORITY_PARAMETERS yang terletak di blok parameter segera setelah struktur DEVICE_DSM_INPUT . Rentang blok logis untuk mengubah prioritas diberikan dalam satu atau beberapa struktur DEVICE_DSM_RANGE . Didukung di Windows 8.1 dan versi yang lebih baru.
DeviceDsmAction_NvCache_Evict Nondestructive. Driver akan mengeluarkan data dari media penembolokan. Untuk mengeluarkan semua data, atur bendera DEVICE_DSM_FLAG_ENTIRE_DATA_SET_RANGE di anggota BenderaDEVICE_DSM_INPUT dan jangan sertakan struktur DEVICE_DSM_RANGE apa pun. Rentang blok logis tertentu untuk dikeluarkan diberikan dalam satu atau beberapa struktur DEVICE_DSM_RANGE . Tindakan DeviceDsmAction_NvCache_Evict dijalankan secara sinkron. Tidak ada tindakan lain yang dilayankan hingga tindakan pengeluaran berhasil atau gagal. Untuk membatasi dampaknya pada aplikasi menggunakan perangkat, setiap tindakan DeviceDsmAction_NvCache_Evict yang dikeluarkan harus mencakup rentang data yang relatif kecil. Mereka tidak boleh melebihi 10 MB dan idealnya lebih kecil dari 2 MB. Ini akan meminimalkan kemungkinan aplikasi tingkat pengguna akan mengalami penundaan yang nyata saat mengakses data pada perangkat. Didukung di Windows 8.1 dan versi yang lebih baru.
DeviceDsmAction_TopologyIdQuery Nondestructive. Hanya untuk penggunaan internal.
DeviceDsmAction_GetPhysicalAddresses Nondestructive. Driver akan mengembalikan rentang alamat fisik yang sesuai dengan satu atau beberapa rentang blok logis. Tindakan ini hanya didukung pada disk memori persisten. Rentang blok logis ditentukan sebagai serangkaian struktur DEVICE_DSM_RANGE segera mengikuti struktur DEVICE_DSM_INPUT. Output terdiri dari struktur DEVICE_DSM_OUTPUT , diikuti dengan padding dan kemudian struktur DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT dengan rentang alamat fisik yang diminta di blok output. Setiap rentang alamat fisik dikembalikan dalam struktur DEVICE_STORAGE_ADDRESS_RANGE . Jika buffer output tidak cukup besar untuk menyimpan semua data, DSM mengembalikan STATUS_BUFFER_OVERFLOW dan bidang TotalNumberOfRanges dari struktur DEVICE_DSM_PHYSICAL_ADDRESSES_OUTPUT berisi jumlah elemen DEVICE_STORAGE_ADDRESS_RANGE yang diperlukan untuk memenuhi permintaan. Rentang alamat fisik apa pun yang berisi kesalahan memori akan memiliki DEVICE_DSM_PHYSICAL_ADDRESS_HAS_MEMORY_ERROR sebagai alamatnya. Aplikasi dapat memetakan rentang alamat fisik yang dikembalikan ke rentang blok logis input dengan melacak panjang setiap rentang alamat fisik yang dikembalikan. Perhatikan bahwa satu rentang blok logis dapat sesuai dengan banyak rentang alamat fisik. Jika DEVICE_DSM_FLAG_PHYSICAL_ADDRESSES_OMIT_TOTAL_RANGES diatur di bidang Bendera dari struktur DEVICE_DSM_INPUT , maka driver tidak akan menghitung TotalNumberOfRanges. Ini adalah pengoptimalan performa untuk penelepon yang tidak perlu mengetahui jumlah total rentang.
DeviceDsmAction_ScopeRegen Nondestructive. Hanya untuk penggunaan internal.
DeviceDsmAction_ReportZones Nondestructive. Hanya untuk penggunaan internal.
DeviceDsmAction_OpenZone Nondestructive. Hanya untuk penggunaan internal.
DeviceDsmAction_FinishZone Nondestructive. Hanya untuk penggunaan internal.
DeviceDsmAction_CloseZone Nondestructive. Hanya untuk penggunaan internal.
DeviceDsmAction_ResetWritePointer Hanya untuk penggunaan internal.
DeviceDsmAction_GetRangeErrorInfo Nondestructive. Driver akan mengembalikan informasi tentang apakah satu atau beberapa rentang blok logis berisi kesalahan media apa pun. Ini hanya didukung pada disk memori persisten. Rentang blok logis ditentukan sebagai serangkaian struktur DEVICE_DSM_RANGE segera mengikuti struktur DEVICE_DSM_INPUT . Output terdiri dari struktur DEVICE_DSM_OUTPUT , diikuti dengan padding dan oleh struktur DEVICE_DSM_RANGE_ERROR_OUTPUT) yang menyimpan array DEVICE_STORAGE_RANGE_ATTRIBUTES. Jika buffer output tidak cukup besar untuk menyimpan semua data, DSM mengembalikan STATUS_BUFFER_OVERFLOW dan bidang TotalNumberOfRanges dari struktur DEVICE_DSM_RANGE_ERROR_OUTPUT berisi jumlah elemen DEVICE_STORAGE_RANGE_ATTRIBUTES yang diperlukan untuk memenuhi permintaan. Setiap struktur DEVICE_STORAGE_RANGE_ATTRIBUTES berisi bidang IsRangeBad . Driver mengatur bidang tersebut ke 1 ketika rentang blok logis berisi kesalahan media. Jika tidak ada kesalahan media dalam salah satu rentang yang diminta, driver mengatur DEVICE_STORAGE_NO_ERRORS di bidang Bendera DEVICE_DSM_RANGE_ERROR_OUTPUT. Elemen array DEVICE_STORAGE_RANGE_ATTRIBUTES diurutkan sehingga urutannya sesuai dengan urutan rentang input. Misalnya, jika rentang input pertama dipecah menjadi 3 rentang output, rentang tersebut akan menjadi 3 rentang pertama dalam array. Pemanggil dapat mempelajari rentang output mana yang sesuai dengan rentang input dengan melacak panjang rentang output.
DeviceDsmAction_WriteZeroes Hanya untuk penggunaan internal.
DeviceDsmAction_LostQuery Nondestructive. Hanya untuk penggunaan internal.
DeviceDsmAction_GetFreeSpace Nondestructive. Hanya untuk penggunaan internal.
DeviceDsmAction_ConversionQuery Nondestructive. Hanya untuk penggunaan internal.