Freigeben über


IDE_DEVICE_PARAMETERS Struktur (irb.h)

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

Hinweis Der ATA-Porttreiber und die ATA Miniport-Treibermodelle können in Zukunft geändert oder nicht verfügbar sein. Stattdessen empfehlen wir die Verwendung des Storport-Treibers und Storport Miniport Treibermodelle.
 

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;

Angehörige

Version

Gibt die Größe der parameterstruktur Device 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 kein Gerät an dieser Adresse gefunden wurde. Die anderen Felder in dieser Struktur sind ungültig, wenn die IdeDeviceType- auf DeviceNotExist-festgelegt ist.

TargetId

Gibt die Ziel-ID des Geräts an.

MaximumLun

Der Miniporttreiber muss dieses Feld aktualisieren, um die maximale logische Einheitsnummer anzugeben, die von diesem Gerät unterstützt wird. Standardmäßig ist das Element auf 0 festgelegt, der das Vorhandensein nur einer LUN angibt.

NumberOfOverlappedRequests

Der Miniporttreiber muss dieses Feld aktualisieren, um die Anzahl der überlappenden Anforderungen anzugeben, die er für dieses Gerät verarbeiten kann. Standardmäßig ist das Element auf 1 festgelegt.

MaxBlockXfer

Gibt die Anzahl der Sektoren in einem Datenblock an, der übertragen werden soll. Dieser Wert gilt für die Datenblöcke, die in ATA-Blockübertragungsbefehlen verwendet werden, z. B. "Mehrfach lesen" (0xC4), "Multiple schreiben" (0xC5). Weitere Informationen zu den Befehlen ReadMultiple und WriteMultiple finden Sie im ATA Specification.

DeviceCharacteristics

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

Gerätemerkmal Beschreibung
DFLAGS_REMOVABLE_MEDIA Gibt an, dass das Laufwerk Wechselmedien enthält.
DFLAGS_ REMOVABLE_DEVICE Gibt an, dass das Gerät sicher nicht angeschlossen werden kann.
DFLAGS_FUA_SUPPORT Gibt an, dass das Gerät FUA unterstützt (Force Unit Access)
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 benutzeradressierbare logische Blockadresse (LBA) an. Dieses Element wird definiert, wenn AddressTranslation- entweder 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. Dieses Element wird definiert, wenn AddressTranslation- gleich ChsMode-ist.

Chs.NumCylinders

Chs.NumHeads

Chs.NumSectorsPerTrack

Chs.Reserved

BytesPerLogicalSector

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

BytesPerPhysicalSector

Dieses Mitglied gibt die Anzahl der Bytes pro physischen Sektor an (d. h. die kleinste Menge an Daten, die das Gerät intern schreiben kann) für das angegebene Gerät.

BytesOffsetForSectorAlignment

Dieses Mitglied gibt den Standort von Sektor 0 innerhalb des ersten physischen Sektors an, wie in der ATA-Spezifikation definiert, die in Byte dargestellt wird.

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 dieses Element festlegen.

Bemerkungen

Der Porttreiber übergibt eine IDE_DEVICE_PARAMETERS Struktur an den Miniporttreiber, wenn er IdeHwInitializeaufruft.

Anforderungen

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

Siehe auch

ATA_ADDRESS_TRANSLATION

IDE_DEVICE_TYPE

IdeHwInitialize