Bagikan melalui


struktur STORAGE_DEVICE_NUMBER_EX (ntddstor.h)

Struktur STORAGE_DEVICE_NUMBER_EX digunakan bersama dengan permintaan IOCTL_STORAGE_GET_DEVICE_NUMBER_EX untuk mengambil jenis perangkat FILE_DEVICE_XXX , nomor perangkat, GUID perangkat, dan, untuk perangkat yang dapat dipartisi, nomor partisi yang ditetapkan ke perangkat oleh driver saat perangkat dimulai.

Sintaks

typedef struct _STORAGE_DEVICE_NUMBER_EX {
  ULONG       Version;
  ULONG       Size;
  ULONG       Flags;
  DEVICE_TYPE DeviceType;
  ULONG       DeviceNumber;
  GUID        DeviceGuid;
  ULONG       PartitionNumber;
} STORAGE_DEVICE_NUMBER_EX, *PSTORAGE_DEVICE_NUMBER_EX;

Anggota

Version

Versi struktur ini. Akan diatur ke sizeof(STORAGE_DEVICE_NUMBER_EX).

Size

Ukuran total struktur ini, termasuk data tambahan apa pun. Saat ini, ini akan selalu diatur ke sizeof(STORAGE_DEVICE_NUMBER_EX).

Flags

Dapat berupa kombinasi bendera STORAGE_DEVICE_FLAGS_XXX yang memberikan informasi lebih lanjut tentang anggota struktur ini. Lihat Keterangan untuk detailnya.

DeviceType

Menentukan salah satu konstanta FILE_DEVICE_XXXX yang ditentukan sistem yang menunjukkan jenis perangkat (seperti FILE_DEVICE_DISK) atau nilai yang ditentukan vendor untuk jenis perangkat baru. IOCTL ini hanya didukung untuk perangkat disk. Untuk informasi selengkapnya, lihat Menentukan Jenis Perangkat.

DeviceNumber

Menunjukkan jumlah perangkat ini. Nilai ini diatur ke 0xFFFFFFFF (-1) untuk disk yang mewakili jalur fisik disk MPIO.

DeviceGuid

Nomor identifikasi unik global untuk perangkat ini. GUID {0} menunjukkan bahwa GUID tidak dapat dihasilkan. GUID didasarkan pada informasi perangkat keras yang tidak berubah dengan pembaruan firmware; misalnya, nomor seri dapat digunakan untuk membentuk GUID, tetapi bukan revisi firmware.

PartitionNumber

Menunjukkan nomor partisi perangkat dikembalikan dalam anggota ini, jika perangkat dapat dipartisi. Jika tidak, -1 dikembalikan.

Keterangan

Permintaan IOCTL_STORAGE_GET_DEVICE_NUMBER_EX biasanya dikeluarkan oleh driver disk yang toleran terhadap kesalahan.

Secara umum, jika perangkat mengekspos pengidentifikasi unik global, driver penyimpanan akan menggunakan pengidentifikasi tersebut untuk membentuk GUID. Jika tidak, driver penyimpanan akan menggabungkan ID vendor perangkat, ID produk, dan nomor seri untuk membuat GUID.

Jika driver penyimpanan mendeteksi dua perangkat dengan informasi perangkat keras yang sama (yang merupakan indikasi masalah dengan perangkat), driver akan menghasilkan GUID acak untuk salah satu dari dua perangkat. Saat menangani IOCTL_STORAGE_GET_DEVICE_NUMBER_EX untuk perangkat dengan GUID acak, driver akan menambahkan STORAGE_DEVICE_FLAGS_RANDOM_DEVICEGUID_REASON_CONFLICT ke anggota Bendera struktur ini.

Jika perangkat penyimpanan tidak memberikan informasi identifikasi apa pun, driver akan menghasilkan GUID acak dan menambahkan STORAGE_DEVICE_FLAGS_RANDOM_DEVICEGUID_REASON_NOHWID ke anggota Bendera struktur ini.

Jika bendera STORAGE_DEVICE_FLAGS_PAGE_83_DEVICEGUID diatur, deviceguid dibuat dari data halaman SCSI83. Jika bendera ini tidak diatur, ini menyiratkan bahwa bendera dibuat dari nomor seri atau dibuat secara acak.

Nilai dalam struktur STORAGE_DEVICE_NUMBER_EX dijamin tetap tidak berubah sampai sistem di-boot ulang. Mereka tidak dijamin persisten di seluruh sepatu bot. GUID perangkat tetap sama di seluruh reboot. GUID acak tidak bertahan dan tidak akan sama setelah boot ulang.

Persyaratan

Persyaratan Nilai
Header ntddstor.h (termasuk Ntddstor.h)

Lihat juga

IOCTL_STORAGE_GET_DEVICE_NUMBER_EX