IDE_DEVICE_PARAMETERS structure (irb.h)
La structure IDE_DEVICE_PARAMETERS contient des informations de configuration que le pilote de port fournit au pilote miniport pour configurer un appareil.
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 l’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 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 d’unités logiques maximal pris en charge par cet appareil. Par défaut, le membre est défini sur 0, ce qui indique l’existence d’un seul numéro d’unité logique.
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 média amovible |
DFLAGS_ REMOVABLE_DEVICE | Indique que l’appareil peut être débranché 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 est défini après avoir reçu la commande ATAPI Packet |
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é lors des transferts de données.
MaxLba
Spécifie l’adresse de bloc logique (LBA) maximale adressable par l’utilisateur. 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, des 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.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | irb.h (include Irb.h) |