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.

Nota Los modelos de controlador de puerto ATA y controlador de minipuerto de ATA pueden modificarse o no estar disponibles en el futuro. En su lugar, se recomienda usar los modelos del controlador Storport y del controlador storport miniport .
 

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)

Consulte también

ATA_ADDRESS_TRANSLATION

IDE_DEVICE_TYPE

IdeHwInitialize