AtaPortInitializeEx function (irb.h)

The AtaPortInitializeEx ATA port driver library routine initializes the port and miniport drivers.

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.
 

Syntax

ULONG AtaPortInitializeEx(
  [in] PVOID                     DriverObject,
  [in] PVOID                     RegistryPath,
  [in] PIDE_CONTROLLER_INTERFACE ControllerInterface
);

Parameters

[in] DriverObject

A pointer to the miniport driver object.

[in] RegistryPath

Contains a Unicode string that indicates the location in the registry where the miniport driver configuration information is stored.

[in] ControllerInterface

Contains the entry points for the AtaAdapterControl, AtaChannelInitRoutine, AtaControllerChannelEnabled, and AtaControllerTransferModeSelect routines.

Return value

AtaPortInitializeEx returns STATUS_SUCCESS if the operation succeeds. Otherwise, it returns an error code.

Remarks

The AtaPortInitializeEx routine initializes key data structures that are used by the port and miniport drivers. It also starts the initialization of the controller's channels. The following sequence describes the principal actions taken by this routine:

  1. While in its DriverEntry routine, the miniport driver calls the port driver's AtaPortInitializeEx library routine and passes it the following key parameters:
    • ControllerInterface: Contains the entry points for the AtaAdapterControl, AtaChannelInitRoutine, AtaControllerChannelEnabled, and AtaControllerTransferModeSelect routines.
  2. The AtaPortInitializeEx routine initializes key data structures that are used by the port and miniport drivers and performs the following actions:
    1. Initializes the miniport driver's dispatch tables.
    2. Allocates an extension for the driver object.
    3. Copies ControllerInterface into the driver extension.
    4. After AtaPortInitializeEx completes the initialization of the port driver, it returns to the miniport driver's DriverEntry routine.
  3. While starting the adapter device, the miniport driver routine AtaAdapterControl will be called by the port driver with control action IdeStart.
  4. When the ATA port driver is processing a channel device start request, the miniport driver routine AtaControllerChannelEnabled is called for each channel on the controller to determine whether it is enabled.
  5. After the AtaControllerChannelEnabled routine determines which channels are enabled, the ATA port driver calls AtaChannelInitRoutine for this channel.

Requirements

Requirement Value
Target Platform Desktop
Header irb.h (include Ata.h, Irb.h)
Library Pciidex.lib

See also

AtaChannelInitRoutine

AtaControllerChannelEnabled

DriverEntry

IDE_CONTROLLER_CONFIGURATION