// irb.h
typedef struct _IDE_CONTROLLER_INTERFACE {
USHORT Version;
USHORT Reserved;
ULONG ControllerExtensionSize;
ULONG ChannelExtensionSize;
ULONG AlignmentMask;
IDE_CHANNEL_INIT AtaChannelInitRoutine;
IDE_CHANNEL_ENABLED AtaControllerChannelEnabled;
IDE_TRANSFER_MODE_SELECT AtaControllerTransferModeSelect;
IDE_ADAPTER_CONTROL AtaAdapterControl;
} IDE_CONTROLLER_INTERFACE, *PIDE_CONTROLLER_INTERFACE;
View the official Windows Driver Kit DDI referenceNo description available.
The IDE_CONTROLLER_INTERFACE 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_INTERFACE). The miniport driver should verify that the version is greater than or equal to the one it is using.
ReservedReserved for future use. The miniport driver shall not use this field.
ControllerExtensionSizeSpecifies the size in bytes required by a miniport driver for its controller device extension.
ChannelExtensionSizeSpecifies the size in bytes required by a miniport driver for its per-channel device extension.
AlignmentMaskContains a mask indicating the alignment restrictions for buffers required by the HBA for transfer operations. Valid mask values are also restricted by characteristics of the memory managers on different versions of Windows. Under Windows 2000 and Windows XP, the valid mask values are 0 (byte-aligned), 1 (word-aligned), 3 (DWORD-aligned) and 7 (double DWORD-aligned). The miniport driver should set this mask if the HBA supports scatter/gather.
AtaChannelInitRoutinePointer to the miniport's AtaChannelInitRoutine routine. The miniport needs to set this entry point only if it supports the Channel Interface.
AtaControllerChannelEnabledPointer to the miniport's AtaControllerChannelEnabled routine. This is an optional entry point.
AtaControllerTransferModeSelectPointer to the miniport's AtaControllerTransferModeSelect routine. This is an optional entry point.
AtaAdapterControlPointer to the miniport's AtaControllerAdapterControl routine. This is a required entry point.