struttura STORAGE_DEVICE_NUMBER_EX (ntddstor.h)

La struttura STORAGE_DEVICE_NUMBER_EX viene usata insieme alla richiesta di IOCTL_STORAGE_GET_DEVICE_NUMBER_EX per recuperare il tipo di dispositivo FILE_DEVICE_XXX , il numero di dispositivo, il GUID del dispositivo e, per un dispositivo che può essere partizionato, il numero di partizione assegnato a un dispositivo dal driver all'avvio del dispositivo.

Sintassi

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;

Members

Version

Versione di questa struttura. Verrà impostato su sizeof(STORAGE_DEVICE_NUMBER_EX).

Size

Dimensioni totali di questa struttura, inclusi eventuali dati aggiuntivi. Attualmente, verrà sempre impostato su sizeof(STORAGE_DEVICE_NUMBER_EX).

Flags

Può essere una combinazione di flag STORAGE_DEVICE_FLAGS_XXX che forniscono altre informazioni sui membri di questa struttura. Per informazioni dettagliate, vedere la sezione Note .

DeviceType

Specifica una delle costanti FILE_DEVICE_XXX definite dal sistema che indicano il tipo di dispositivo (ad esempio FILE_DEVICE_DISK) o un valore definito dal fornitore per un nuovo tipo di dispositivo. Questo IOCTL è supportato solo per i dispositivi disco. Per altre informazioni, vedere Specifica dei tipi di dispositivo.

DeviceNumber

Indica il numero di questo dispositivo. Questo valore è impostato su 0xFFFFFFFF (-1) per i dischi che rappresentano i percorsi fisici di un disco MPIO.

DeviceGuid

Numero di identificazione univoco globale per questo dispositivo. Un GUID di {0} indica che non è stato possibile generare un GUID. Il GUID si basa su informazioni hardware che non cambiano con gli aggiornamenti del firmware; Ad esempio, il numero di serie può essere usato per formare il GUID, ma non la revisione del firmware.

PartitionNumber

Indica il numero di partizione del dispositivo restituito in questo membro, se il dispositivo può essere partizionato. In caso contrario, viene restituito -1.

Commenti

La richiesta di IOCTL_STORAGE_GET_DEVICE_NUMBER_EX viene in genere eseguita da un driver del disco a tolleranza di errore.

In generale, se un dispositivo espone un identificatore univoco globale, il driver di archiviazione userà tale identificatore per formare il GUID. In caso contrario, il driver di archiviazione combina l'ID fornitore del dispositivo, l'ID prodotto e il numero di serie per creare il GUID.

Se un driver di archiviazione rileva due dispositivi con le stesse informazioni hardware (che indica un problema con il dispositivo), il driver genererà un GUID casuale per uno dei due dispositivi. Quando si gestisce IOCTL_STORAGE_GET_DEVICE_NUMBER_EX per il dispositivo con il GUID casuale, il driver aggiungerà STORAGE_DEVICE_FLAGS_RANDOM_DEVICEGUID_REASON_CONFLICT al membro Flags di questa struttura.

Se un dispositivo di archiviazione non fornisce informazioni di identificazione, il driver genererà un GUID casuale e aggiungerà STORAGE_DEVICE_FLAGS_RANDOM_DEVICEGUID_REASON_NOHWID al membro Flags di questa struttura.

Se il flag STORAGE_DEVICE_FLAGS_PAGE_83_DEVICEGUID è impostato, deviceguid è stato creato dai dati della pagina SCSI83. Se questo flag non è impostato, significa che è stato creato dal numero di serie o generato in modo casuale.

I valori nella struttura STORAGE_DEVICE_NUMBER_EX rimangono invariati fino al riavvio del sistema. Non è garantito che siano persistenti tra gli stivali. Un GUID del dispositivo rimane invariato tra i riavvii. Un GUID casuale non è persistente e non sarà lo stesso dopo un riavvio.

Requisiti

Requisito Valore
Intestazione ntddstor.h (include Ntddstor.h)

Vedi anche

IOCTL_STORAGE_GET_DEVICE_NUMBER_EX