estructura IDE_DEVICE_PARAMETERS (irb.h)
La estructura IDE_DEVICE_PARAMETERS contiene información de configuración que el controlador de puerto proporciona al controlador de minipuerto para configurar un dispositivo.
Sintaxis
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;
Miembros
Version
Indica el tamaño de la estructura de parámetros device . El controlador de minipuerto debe comprobar que sizeof(IDE_DEVICE_PARAMETERS) es menor o igual que el campo Versión .
IdeDeviceType
Indica el tipo del dispositivo. Los tipos de dispositivo permitidos son DeviceIsAta para dispositivos ATA, DeviceIsAtapi para dispositivos ATAPI y DeviceNotExist si no se encontró ningún dispositivo en esa dirección. Los demás campos de esta estructura no son válidos si IdeDeviceType está establecido en DeviceNotExist.
TargetId
Especifica el identificador de destino del dispositivo.
MaximumLun
El controlador de minipuerto debe actualizar este campo para indicar el número máximo de unidad lógica compatible con este dispositivo. De forma predeterminada, el miembro se establece en 0 que indica la existencia de un SOLO LUN.
NumberOfOverlappedRequests
El controlador de minipuerto debe actualizar este campo para especificar el número de solicitudes superpuestas que puede controlar para este dispositivo. De forma predeterminada, el miembro se establece en 1.
MaxBlockXfer
Especifica el número de sectores de un bloque de datos que se van a transferir. Este valor se aplica a los bloques de datos usados en comandos de transferencia de bloques de ATA, como Read Multiple (0xC4), Write Multiple (0xC5). Para obtener más información sobre los comandos ReadMultiple y WriteMultiple, consulte la especificación de ATA.
DeviceCharacteristics
Especifica las características del dispositivo. En la tabla siguiente se enumeran las características que se pueden establecer en este miembro. El byte alto de este miembro es opaco y no será cambiado por el miniporte ATA.
Característica del dispositivo | Descripción |
---|---|
DFLAGS_REMOVABLE_MEDIA | Indica que la unidad tiene medios extraíbles. |
DFLAGS_ REMOVABLE_DEVICE | Indica que el dispositivo se puede desconectar de forma segura. |
DFLAGS_FUA_SUPPORT | Indica que el dispositivo admite FUA (Forzar acceso a unidades). |
DFLAGS_INT_DRQ | Indica que el dispositivo se interrumpe como DRQ se establece después de recibir el comando de paquete ATAPI. |
DFLAGS_MSN_SUPPORT | Indica que el dispositivo admite la notificación de estado multimedia. |
AddressTranslation
Contiene un valor de enumeración de tipo ATA_ADDRESS_TRANSLATION que especifica el tipo de traducción de direcciones utilizada durante las transferencias de datos.
MaxLba
Especifica la dirección de bloque lógico (LBA) máxima direccionable por el usuario. Este miembro se define cuando AddressTranslation es igual a LbaMode o Lba48BitMode.
Chs
Especifica la geometría de la unidad con los valores del número de cilindros, cabezas por cilindro y sectores por pista. Este miembro se define cuando AddressTranslation es igual a ChsMode.
Chs.NumCylinders
Chs.NumHeads
Chs.NumSectorsPerTrack
Chs.Reserved
BytesPerLogicalSector
Este miembro especifica el número de bytes por sector lógico (LBA) para el dispositivo especificado.
BytesPerPhysicalSector
Este miembro especifica el número de bytes por sector físico (es decir, la menor cantidad de datos que el dispositivo puede escribir físicamente internamente) para el dispositivo determinado.
BytesOffsetForSectorAlignment
Este miembro especifica la ubicación del sector 0 dentro del primer sector físico tal y como se define en la especificación de ATA representada en bytes.
TransferModeSupported
Contiene un mapa de bits que indica los modos de transferencia admitidos.
TransferModeSelected
Indica los modos de transferencia seleccionados en el dispositivo. El controlador de minipuerto debe establecer este miembro.
Comentarios
El controlador de puerto pasa una estructura de IDE_DEVICE_PARAMETERS al controlador de minipuerto cuando llama a IdeHwInitialize.
Requisitos
Requisito | Valor |
---|---|
Header | irb.h (incluir Irb.h) |