STORAGE_DEVICE_NUMBER_EX Struktur (ntddstor.h)
Die STORAGE_DEVICE_NUMBER_EX-Struktur wird in Verbindung mit der IOCTL_STORAGE_GET_DEVICE_NUMBER_EX Anforderung zum Abrufen des FILE_DEVICE_XXX- Gerätetyps, der Gerätenummer, der Geräte-GUID und, für ein Gerät verwendet, das partitioniert werden kann, die Partitionsnummer, die einem Gerät vom Treiber zugewiesen wird, wenn das Gerät gestartet wird.
Syntax
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;
Angehörige
Version
Die Version dieser Struktur. Wird auf Größe(STORAGE_DEVICE_NUMBER_EX) festgelegt.
Size
Gesamtgröße dieser Struktur, einschließlich aller zusätzlichen Daten. Derzeit wird dies immer auf Größe von(STORAGE_DEVICE_NUMBER_EX) festgelegt.
Flags
Dies kann eine Kombination aus STORAGE_DEVICE_FLAGS_XXX Flags sein, die weitere Informationen zu den Elementen dieser Struktur bereitstellen. Ausführliche Informationen finden Sie in Anmerkungen.
DeviceType
Gibt eine der vom System definierten FILE_DEVICE_XXX- Konstanten an, die den Gerätetyp (z. B. FILE_DEVICE_DISK) oder einen vom Anbieter definierten Wert für einen neuen Gerätetyp angeben. Diese IOCTL wird nur für Datenträgergeräte unterstützt. Weitere Informationen finden Sie unter Angeben von Gerätetypen.
DeviceNumber
Gibt die Nummer dieses Geräts an. Dieser Wert wird für die Datenträger, die die physischen Pfade eines MPIO-Datenträgers darstellen, auf 0xFFFFFFFF (-1) festgelegt.
DeviceGuid
Eine global eindeutige Identifikationsnummer für dieses Gerät. Eine GUID von {0} gibt an, dass eine GUID nicht generiert werden konnte. Die GUID basiert auf Hardwareinformationen, die sich nicht mit Firmwareupdates ändern; Beispielsweise kann die Seriennummer verwendet werden, um die GUID, aber nicht die Firmwarerevision zu bilden.
PartitionNumber
Gibt die Partitionsnummer des Geräts an, die in diesem Element zurückgegeben wird, wenn das Gerät partitioniert werden kann. Andernfalls wird -1 zurückgegeben.
Bemerkungen
Die IOCTL_STORAGE_GET_DEVICE_NUMBER_EX Anforderung wird in der Regel von einem fehlertoleranten Datenträgertreiber ausgegeben.
Wenn ein Gerät einen global eindeutigen Bezeichner verfügbar macht, verwendet der Speichertreiber diesen Bezeichner, um die GUID zu bilden. Andernfalls kombiniert der Speichertreiber die Hersteller-ID, Produkt-ID und Seriennummer des Geräts, um die GUID zu erstellen.
Wenn ein Speichertreiber zwei Geräte mit den gleichen Hardwareinformationen erkennt (dies ist ein Hinweis auf ein Problem mit dem Gerät), generiert der Treiber eine zufällige GUID für eines der beiden Geräte. Beim Behandeln von IOCTL_STORAGE_GET_DEVICE_NUMBER_EX für das Gerät mit der zufälligen GUID fügt der Treiber STORAGE_DEVICE_FLAGS_RANDOM_DEVICEGUID_REASON_CONFLICT dem Flags Mitglied dieser Struktur hinzu.
Wenn ein Speichergerät keine identifizierenden Informationen bereitstellt, generiert der Treiber eine zufällige GUID und fügt dem Flags Mitglied dieser Struktur STORAGE_DEVICE_FLAGS_RANDOM_DEVICEGUID_REASON_NOHWID hinzu.
Wenn das STORAGE_DEVICE_FLAGS_PAGE_83_DEVICEGUID Flag festgelegt ist, wurde die deviceguid aus den SCSI page83-Daten erstellt. Wenn dieses Kennzeichen nicht festgelegt ist, bedeutet dies, dass es aus der Seriennummer erstellt wurde oder zufällig generiert wurde.
Die Werte in der STORAGE_DEVICE_NUMBER_EX-Struktur bleiben garantiert unverändert, bis das System neu gestartet wird. Sie sind nicht garantiert, dass sie über Stiefel hinweg dauerhaft sind. Eine Geräte-GUID bleibt bei Neustarts gleich. Eine zufällige GUID wird nicht beibehalten und ist nach einem Neustart nicht identisch.
Anforderungen
Anforderung | Wert |
---|---|
Header- | ntddstor.h (include Ntddstor.h) |