// irb.h
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;
View the official Windows Driver Kit DDI referenceNo description available.
The IDE_CONTROLLER_CONFIGURATION structure is used to pass controller configuration information between the port driver and the miniport driver.
Note The ATA port driver and ATA miniport driver models may be altered or unavailable in the future. Instead, we recommend using the Storport driver and Storport miniport driver models.
VersionThe 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.
NumberOfChannelsSpecifies the number of channels supported by the HBA. Note that this indicates the total number of channels including the ones that are disabled.
ControllerModeThe 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. |
NumberOfPhysicalBreaksSpecifies 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.
MaximumTransferLengthSpecifies 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.
ReservedReserved for future use. The miniport driver must not use this field.
NativeModeEnabledThe miniport driver could set this member to TRUE to indicate that the controller is to be operated in Native mode.
Dma64BitAddressThe miniport driver could set this member to TRUE to indicate support for 64 bit DMA operation.
BusMasterThe miniport driver could set this member to TRUE to indicate bus mastering support.
AtaBusTypeIndicates whether it is a SATA or a PATA controller.
ControllerResourcesProvides the hardware resources for the ATA controller.