Partager via


structure IDE_DEVICE_PARAMETERS (irb.h)

La structure IDE_DEVICE_PARAMETERS contient des informations de configuration fournies par le pilote de port au pilote miniport pour configurer un appareil.

Remarque Le pilote de port ATA et les modèles de pilotes miniport ATA peuvent être modifiés ou indisponibles à l’avenir. Au lieu de cela, nous vous recommandons d’utiliser le du pilote Storport et modèles de pilotes Storport miniport.
 

Syntaxe

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;

Membres

Version

Indique la taille de la structure des paramètres de appareil. Le pilote miniport doit vérifier que sizeof(IDE_DEVICE_PARAMETERS) est inférieur ou égal au champ Version.

IdeDeviceType

Indique le type de l’appareil. Les types d’appareils autorisés sont DeviceIsAta pour les appareils ATA, DeviceIsAtapi pour les appareils ATAPI, et DeviceNotExist si aucun appareil n’a été trouvé à cette adresse. Les autres champs de cette structure ne sont pas valides si le IdeDeviceType est défini sur DeviceNotExist.

TargetId

Spécifie l’ID cible de l’appareil.

MaximumLun

Le pilote miniport doit mettre à jour ce champ pour indiquer le nombre maximal d’unités logiques pris en charge par cet appareil. Par défaut, le membre est défini sur 0 indiquant l’existence d’un seul LUN.

NumberOfOverlappedRequests

Le pilote miniport doit mettre à jour ce champ pour spécifier le nombre de demandes superposées qu’il peut gérer pour cet appareil. Par défaut, le membre est défini sur 1.

MaxBlockXfer

Spécifie le nombre de secteurs dans un bloc de données à transférer. Cette valeur s’applique aux blocs de données utilisés dans les commandes de transfert de blocs ATA telles que Lecture multiple (0xC4), Écriture multiple (0xC5). Pour plus d’informations sur les commandes ReadMultiple et WriteMultiple, consultez la spécification ATA.

DeviceCharacteristics

Spécifie les caractéristiques de l’appareil. Le tableau ci-dessous répertorie les caractéristiques qui peuvent être définies dans ce membre. L’octet élevé de ce membre est opaque et ne doit pas être modifié par le miniport ATA.

Caractéristique de l’appareil Description
DFLAGS_REMOVABLE_MEDIA Indique que le lecteur a un support amovible
DFLAGS_ REMOVABLE_DEVICE Indique que l’appareil peut être déconnecté en toute sécurité
DFLAGS_FUA_SUPPORT Indique que l’appareil prend en charge FUA (Force Unit Access)
DFLAGS_INT_DRQ Indique que l’appareil interrompt en tant que DRQ après la réception de la commande De paquet ATAPI
DFLAGS_MSN_SUPPORT Indique que l’appareil prend en charge la notification d’état du média.

AddressTranslation

Contient une valeur d’énumération de type ATA_ADDRESS_TRANSLATION qui spécifie le type de traduction d’adresses utilisé pendant les transferts de données.

MaxLba

Spécifie l’adresse de bloc logique pouvant être adressable à l’utilisateur (LBA). Ce membre est défini lorsque AddressTranslation est égal à LbaMode ou Lba48BitMode.

Chs

Spécifie la géométrie du lecteur avec les valeurs du nombre de cylindres, de têtes par cylindre et des secteurs par piste. Ce membre est défini lorsque AddressTranslation est égal à chsMode.

Chs.NumCylinders

Chs.NumHeads

Chs.NumSectorsPerTrack

Chs.Reserved

BytesPerLogicalSector

Ce membre spécifie le nombre d’octets par secteur logique (LBA) pour l’appareil donné.

BytesPerPhysicalSector

Ce membre spécifie le nombre d’octets par secteur physique (autrement dit, la plus petite quantité de données que l’appareil peut écrire physiquement en interne) pour l’appareil donné.

BytesOffsetForSectorAlignment

Ce membre spécifie l’emplacement du secteur 0 dans le premier secteur physique tel que défini dans la spécification ATA représentée en octets.

TransferModeSupported

Contient une bitmap qui indique les modes de transfert pris en charge.

TransferModeSelected

Indique les modes de transfert sélectionnés sur l’appareil. Le pilote miniport doit définir ce membre.

Remarques

Le pilote de port transmet une structure IDE_DEVICE_PARAMETERS au pilote miniport lorsqu’il appelle IdeHwInitialize.

Exigences

Exigence Valeur
d’en-tête irb.h (include Irb.h)

Voir aussi

ATA_ADDRESS_TRANSLATION

IDE_DEVICE_TYPE

IdeHwInitialize