Freigeben über


IDE_DEVICE_PARAMETERS-Struktur (irb.h)

Die IDE_DEVICE_PARAMETERS-Struktur enthält Konfigurationsinformationen, die der Porttreiber dem Miniporttreiber zum Konfigurieren eines Geräts bereitstellt.

Hinweis Die Modelle ATA-Porttreiber und ATA-Miniporttreiber sind möglicherweise geändert oder in Zukunft nicht mehr verfügbar. Stattdessen wird empfohlen, die Modelle Storport-Treiber und Storport-Miniporttreiber zu verwenden.
 

Syntax

typedef struct _IDE_DEVICE_PARAMETERS {
  USHORT                  Version;
  IDE_DEVICE_TYPE         IdeDeviceType;
  UCHAR                   TargetId;
  UCHAR                   MaximumLun;
  UCHAR                   NumberOfOverlappedRequests;
  UCHAR                   MaxBlockXfer;
  USHORT                  DeviceCharacteristics;
  ATA_ADDRESS_TRANSLATION AddressTranslation;
  union {
    LARGE_INTEGER MaxLba;
    struct {
      USHORT NumCylinders;
      USHORT NumHeads;
      USHORT NumSectorsPerTrack;
      USHORT Reserved;
    } Chs;
  };
  ULONG                   BytesPerLogicalSector;
  ULONG                   BytesPerPhysicalSector;
  ULONG                   BytesOffsetForSectorAlignment;
  ULONG                   TransferModeSupported;
  ULONG                   TransferModeSelected;
} IDE_DEVICE_PARAMETERS, *PIDE_DEVICE_PARAMETERS;

Member

Version

Gibt die Größe der Geräteparameterstruktur an. Der Miniporttreiber sollte überprüfen, ob sizeof(IDE_DEVICE_PARAMETERS) kleiner oder gleich dem Feld Version ist.

IdeDeviceType

Gibt den Typ des Geräts an. Die zulässigen Gerätetypen sind DeviceIsAta für ATA-Geräte, DeviceIsAtapi für ATAPI-Geräte und DeviceNotExist , wenn unter dieser Adresse kein Gerät gefunden wurde. Die anderen Felder in dieser Struktur sind ungültig, wenn IdeDeviceType auf DeviceNotExist festgelegt ist.

TargetId

Gibt die Ziel-ID des Geräts an.

MaximumLun

Der Miniporttreiber muss dieses Feld aktualisieren, um die maximale Anzahl logischer Einheiten anzugeben, die von diesem Gerät unterstützt werden. Standardmäßig ist der Member auf 0 festgelegt, was angibt, dass nur eine LUN vorhanden ist.

NumberOfOverlappedRequests

Der Miniporttreiber muss dieses Feld aktualisieren, um die Anzahl der überlappenden Anforderungen anzugeben, die für dieses Gerät verarbeitet werden können. Standardmäßig ist das Element auf 1 festgelegt.

MaxBlockXfer

Gibt die Anzahl der Sektoren in einem zu übertragenden Datenblock an. Dieser Wert gilt für die Datenblöcke, die in ATA-Blockübertragungsbefehlen wie Read Multiple (0xC4), Write Multiple (0xC5) verwendet werden. Weitere Informationen zu den Befehlen ReadMultiple und WriteMultiple finden Sie in der ATA-Spezifikation.

DeviceCharacteristics

Gibt die Gerätemerkmale an. In der folgenden Tabelle sind die Merkmale aufgeführt, die in diesem Member festgelegt werden können. Das hohe Byte dieses Elements ist undurchsichtig und darf vom ATA-Miniport nicht geändert werden.

Geräteeigenschaft BESCHREIBUNG
DFLAGS_REMOVABLE_MEDIA Gibt an, dass das Laufwerk über Wechselmedien verfügt.
DFLAGS_ REMOVABLE_DEVICE Gibt an, dass das Gerät sicher vom Netz getrennt werden kann.
DFLAGS_FUA_SUPPORT Gibt an, dass das Gerät FUA (Force Unit Access) unterstützt.
DFLAGS_INT_DRQ Gibt an, dass das Gerät nach dem Empfang des ATAPI-Paketbefehls als DRQ festgelegt wird.
DFLAGS_MSN_SUPPORT Gibt an, dass das Gerät die Medienstatusbenachrichtigung unterstützt.

AddressTranslation

Enthält einen Enumerationswert vom Typ ATA_ADDRESS_TRANSLATION , der die Art der Adressübersetzung angibt, die während der Datenübertragung verwendet wird.

MaxLba

Gibt die maximale anzahl von Benutzern adressierbare logische Blockadresse (LBA) an. Dieser Member wird definiert, wenn AddressTranslation gleich LbaMode oder Lba48BitMode ist.

Chs

Gibt die Antriebsgeometrie mit den Werten für die Anzahl der Zylinder, Köpfe pro Zylinder und die Sektoren pro Spur an. Dieser Member wird definiert, wenn AddressTranslation gleich ChsMode ist.

Chs.NumCylinders

Chs.NumHeads

Chs.NumSectorsPerTrack

Chs.Reserved

BytesPerLogicalSector

Dieser Member gibt die Anzahl der Bytes pro logischem Sektor (LBA) für das angegebene Gerät an.

BytesPerPhysicalSector

Dieser Member gibt die Anzahl der Bytes pro physischem Sektor (d. h. die kleinste Datenmenge, die das Gerät intern physisch schreiben kann) für das angegebene Gerät an.

BytesOffsetForSectorAlignment

Dieses Element gibt den Speicherort von Sektor 0 innerhalb des ersten physischen Sektors an, wie in der ATA-Spezifikation in Bytes definiert.

TransferModeSupported

Enthält eine Bitmap, die die unterstützten Übertragungsmodi angibt.

TransferModeSelected

Gibt die ausgewählten Übertragungsmodi auf dem Gerät an. Der Miniporttreiber muss diesen Member festlegen.

Hinweise

Der Porttreiber übergibt eine IDE_DEVICE_PARAMETERS-Struktur an den Miniporttreiber, wenn er IdeHwInitialize aufruft.

Anforderungen

Anforderung Wert
Header irb.h (include Irb.h)

Weitere Informationen

ATA_ADDRESS_TRANSLATION

IDE_DEVICE_TYPE

IdeHwInitialize