AtaPortInitializeEx function (irb.h)
The AtaPortInitializeEx ATA port driver library routine initializes the port and miniport drivers.
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:
- 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.
- The AtaPortInitializeEx routine initializes key data structures that are used by the port and miniport drivers and performs the following actions:
- Initializes the miniport driver's dispatch tables.
- Allocates an extension for the driver object.
- Copies ControllerInterface into the driver extension.
- After AtaPortInitializeEx completes the initialization of the port driver, it returns to the miniport driver's DriverEntry routine.
- While starting the adapter device, the miniport driver routine AtaAdapterControl will be called by the port driver with control action IdeStart.
- 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.
- 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 |