HwIdeXUdmaModesSupported routine
The HwIdeXUdmaModeSupported routine indicates which ultra direct memory access (UDMA) transfer mode is current and which is best for the device indicated by IdentifyData.
Syntax
PCIIDE_UDMA_MODES_SUPPORTED HwIdeXUdmaModesSupported;
NTSTATUS HwIdeXUdmaModesSupported(
IDENTIFY_DATA IdentifyData,
PULONG BestXferMode,
PULONG CurrentXferMode
)
{ ... }
Parameters
IdentifyData
Specifies a structure containing the IDENTIFY DEVICE information defined in the ATA/ATAPI-5 specification. Minidrivers retrieve this data in the PCIIDE_TRANSFER_MODE_SELECT structure with a call to HwIdeXTransferModeSelect. For further information about the contents of this structure, see the ATA/ATAPI-5 specification.BestXferMode
Indicates the highest UDMA mode supported by this device.CurrentXferMode
Indicates the currently active UDMA mode on this device.
Return value
HwIdeXUdmaModesSupported returns STATUS_SUCCESS if the operation was a success; otherwise, it returns STATUS_UNSUCCESSFUL.
Remarks
HwIdeXUdmaModesSupported interprets the identify data for a device and determines both the currently active UDMA mode and the best possible UDMA mode supported by the device. For example, if UDMA mode four is the best transfer mode that the device supports and UDMA mode two is the currently active UDMA mode, the routine should return BestXferMode = 4 and CurrentXferMode = 2.
This routine makes IDE controller drivers more extensible. If a new UDMA mode is added to the ATA/ATAPI specification, you only need to change this routine to interpret the new information in the identify data.
When the controller driver calls the minidriver's HwIdeXGetControllerProperties routine, it passes a IDE_CONTROLLER_PROPERTIES structure to the minidriver. The minidriver must store a pointer to HwIdeXUdmaModesSupported in this structure.
Requirements
Target platform |
Desktop |
Header |
Ide.h (include Ide.h) |
See also