struktur NVCACHE_REQUEST_BLOCK (ntddscsi.h)
Struktur NVCACHE_REQUEST_BLOCK digunakan bersama dengan permintaan IOCTL_SCSI_MINIPORT untuk mengelola perangkat drive hard disk hibrid (H-HDD) (misalnya, teknologi Microsoft ReadyDrive). Topik ini mendefinisikan struktur umum untuk data input dan data output untuk panggilan yang dilakukan ke NV Cache Manager. Pemanggil harus mengisi semua bidang yang diperlukan sebelum memanggil DeviceIoControl atau IoBuildDeviceIoControlRequest. Driver miniport harus melakukan hal yang sama setelah fungsi yang diminta selesai, dan sebelum kembali.
Sintaks
typedef struct _NVCACHE_REQUEST_BLOCK {
ULONG NRBSize;
USHORT Function;
ULONG NRBFlags;
ULONG NRBStatus;
ULONG Count;
ULONGLONG LBA;
ULONG DataBufSize;
ULONG NVCacheStatus;
ULONG NVCacheSubStatus;
} NVCACHE_REQUEST_BLOCK, *PNVCACHE_REQUEST_BLOCK;
Anggota
NRBSize
Sizeof(NVCACHE_REQUEST_BLOCK).
Function
Menentukan operasi yang akan dilakukan, yang bisa menjadi salah satu nilai berikut:
Nilai | Makna |
---|---|
NRB_FUNCTION_NVCACHE_INFO | Dapatkan informasi dukungan fitur NV Cache Manager dari perangkat. Setelah berhasil menyelesaikan fungsi ini, bidang data yang diperlukan dikembalikan ke pemanggil. Struktur data yang dikembalikan NV_FEATURE_PARAMETER. |
NRB_FUNCTION_SPINDLE_STATUS | Tentukan apakah perangkat saat ini berputar ke atas atau berputar ke bawah. Untuk perangkat ATA, perintah Periksa Mode Daya diperlukan untuk mendapatkan status spindle perangkat. Untuk perangkat SCSI, perintah Mode Sense dapat digunakan untuk mengkueri mode daya perangkat saat ini. |
NRB_FUNCTION_NVCACHE_POWER_MODE_SET | Aktifkan mode daya NV Cache Manager. |
NRB_FUNCTION_NVCACHE_POWER_MODE_RESET | Matikan mode daya NV Cache Manager. |
NRB_FUNCTION_FLUSH_NVCACHE | Hapus data yang saat ini disematkan dalam memori cache NV untuk membuat ruang memori cache NV yang diperlukan tersedia. |
NRB_FUNCTION_QUERY_PINNED_SET | Dapatkan rentang Logical Block Address (LBA) yang saat ini berada di set yang disematkan NV Cache Manager. |
NRB_FUNCTION_QUERY_CACHE_MISS | Minta agar perangkat melaporkan NV Cache Misses dalam rentang LBA dalam satu blok 512-byte. |
NRB_FUNCTION_ADD_LBAS_PINNED_SET | Tambahkan LBA yang ditentukan dalam NV Cache Manager Set Data ke NV Cache Manager Pinned Set jika belum. |
NRB_FUNCTION_REMOVE_LBAS_PINNED_SET | Hapus LBA yang ditentukan dalam NV Cache Set Data dari kumpulan yang disematkan NV Cache. |
NRB_FUNCTION_QUERY_HYBRID_DISK_STATUS | Disiapkan untuk penggunaan masa mendatang. |
NRB_FUNCTION_PASS_HINT_PAYLOAD | Berikan petunjuk IO ke perangkat SATA. |
NRBFlags
Disiapkan untuk penggunaan masa mendatang.
NRBStatus
Menunjukkan status permintaan fungsi NV Cache Manager dari driver. Ini bisa menjadi salah satu nilai berikut:
Nilai | Makna |
---|---|
NRB_SUCCESS | Tidak ada kesalahan. |
NRB_ILLEGAL_REQUEST | Permintaan ilegal terdeteksi oleh driver port. |
NRB_INVALID_PARAMETER | Parameter tidak valid diteruskan ke driver port. |
NRB_INPUT_DATA_OVERRUN | Terlalu banyak data yang disediakan untuk driver port. |
NRB_INPUT_DATA_UNDERRUN | Tidak cukup data yang diberikan kepada driver port. |
NRB_OUTPUT_DATA_OVERRUN | Terlalu banyak data yang dikembalikan dari driver port. |
NRB_OUTPUT_DATA_UNDERRUN | Tidak cukup data yang dikembalikan dari driver port. |
Count
Jumlah blok 512 byte yang akan ditransfer dengan fungsi yang ditentukan.
LBA
Memulai LBA perangkat untuk fungsi yang ditentukan.
DataBufSize
Ukuran buffer data, dalam byte.
NVCacheStatus
Status dikembalikan dari perangkat. Untuk perangkat ATA, nilai ini adalah konten Daftar Status dalam File Tugasnya. Untuk perangkat SCSI, nilai ini adalah Sense Code yang dikembalikan dari perangkat.
NVCacheSubStatus
Kode kesalahan dikembalikan dari perangkat. Untuk perangkat ATA, nilai ini adalah konten Daftar Kesalahan dalam File Tugasnya. Untuk perangkat SCSI, nilai ini adalah kunci Sense yang dikembalikan dari perangkat.
Keterangan
Untuk informasi selengkapnya tentang perilaku fungsi, lihat bagian 7.20 spesifikasi ATA8-ACS.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | ntddscsi.h (termasuk Ntddscsi.h) |