IDE_CONTROLLER_CONFIGURATION structure (irb.h)
The IDE_CONTROLLER_CONFIGURATION structure is used to pass controller configuration information between the port driver and the miniport driver.
Syntax
typedef struct _IDE_CONTROLLER_CONFIGURATION {
USHORT Version;
UCHAR NumberOfChannels;
IDE_OPERATION_MODE ControllerMode;
UCHAR NumberOfPhysicalBreaks;
ULONG MaximumTransferLength;
BOOLEAN Reserved;
BOOLEAN NativeModeEnabled;
BOOLEAN Dma64BitAddress;
BOOLEAN BusMaster;
IDE_BUS_TYPE AtaBusType;
PIDE_MINIPORT_RESOURCES ControllerResources;
} IDE_CONTROLLER_CONFIGURATION, *PIDE_CONTROLLER_CONFIGURATION;
Members
Version
The port driver sets this field to indicate the version of the port driver. The port driver sets the version to sizeof(IDE_CONTROLLER_CONFIGURATION). The miniport driver should verify that the version is greater than or equal to the one it is using.
NumberOfChannels
Specifies the number of channels supported by the HBA. Note that this indicates the total number of channels including the ones that are disabled.
ControllerMode
The port driver sets this field to inform the ATA miniport which mode it is running at. There are two possible modes:
Mode | Description |
---|---|
IdeModeNormal | This is the standard full capabilities mode where the ATA miniport may operate normally. |
IdeModeDump | This is the limited no memory mode that an ATA miniport operates in during hibernate or crashdump. Call Back Routines and Registry Access Routines cannot be used when in this mode. |
NumberOfPhysicalBreaks
Specifies the maximum number of breaks between address ranges that a data buffer can have if the HBA supports scatter/gather. In other words, the number of scatter/gather lists minus one. By default, the value of this member is IDE_UNINITIALIZED_VALUE, which indicates the HBA can support an unlimited number of physical discontinuities. If the port driver sets a value for this member, the miniport driver can adjust the value lower but no higher. If this member is IDE_UNINITIALIZED_VALUE, the miniport driver must reset this member according to the HBA's scatter/gather capacity.
MaximumTransferLength
Specifies the maximum number of bytes the HBA can transfer in a single transfer operation. By default, the value of this member is IDE_UNINITIALIZED_VALUE, which indicates an unlimited maximum transfer size.
Reserved
Reserved for future use. The miniport driver must not use this field.
NativeModeEnabled
The miniport driver could set this member to TRUE to indicate that the controller is to be operated in Native mode.
Dma64BitAddress
The miniport driver could set this member to TRUE to indicate support for 64 bit DMA operation.
BusMaster
The miniport driver could set this member to TRUE to indicate bus mastering support.
AtaBusType
Indicates whether it is a SATA or a PATA controller.
ControllerResources
Provides the hardware resources for the ATA controller.
Requirements
Requirement | Value |
---|---|
Header | irb.h (include Irb.h) |