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

PCIIDE_TRANSFER_MODE_SELECT

HwIdeXTransferModeSelect

HwIdeXGetControllerProperties

IDE_CONTROLLER_PROPERTIES

 

 

Send comments about this topic to Microsoft