Freigeben über


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)

Siehe auch

IOCTL_STORAGE_GET_DEVICE_NUMBER_EX