AtaPortInitializeEx 함수(irb.h)

AtaPortInitializeEx ATA 포트 드라이버 라이브러리 루틴은 포트 및 미니포트 드라이버를 초기화합니다.

참고 ATA 포트 드라이버 및 ATA 미니포트 드라이버 모델은 나중에 변경되거나 사용할 수 없습니다. 대신 Storport 드라이버Storport 미니포트 드라이버 모델을 사용하는 것이 좋습니다.
 

구문

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

매개 변수

[in] DriverObject

미니포트 드라이버 개체에 대한 포인터입니다.

[in] RegistryPath

미니포트 드라이버 구성 정보가 저장된 레지스트리의 위치를 나타내는 유니코드 문자열을 포함합니다.

[in] ControllerInterface

AtaAdapterControl, AtaChannelInitRoutine, AtaControllerChannelEnabledAtaControllerTransferModeSelect 루틴에 대한 진입점을 포함합니다.

반환 값

작업이 성공하면 AtaPortInitializeEx는 STATUS_SUCCESS 반환합니다. 그렇지 않으면 오류 코드를 반환합니다.

설명

AtaPortInitializeEx 루틴은 포트 및 미니포트 드라이버에서 사용되는 주요 데이터 구조를 초기화합니다. 또한 컨트롤러 채널의 초기화도 시작합니다. 다음 시퀀스는 이 루틴에서 수행한 주체 작업을 설명합니다.

  1. DriverEntry 루틴에서 미니포트 드라이버는 포트 드라이버의 AtaPortInitializeEx 라이브러리 루틴을 호출하고 다음 주요 매개 변수를 전달합니다.
    • ControllerInterface: AtaAdapterControl, AtaChannelInitRoutine, AtaControllerChannelEnabledAtaControllerTransferModeSelect 루틴의 진입점을 포함합니다.
  2. AtaPortInitializeEx 루틴은 포트 및 미니포트 드라이버에서 사용되는 주요 데이터 구조를 초기화하고 다음 작업을 수행합니다.
    1. 미니포트 드라이버의 디스패치 테이블을 초기화합니다.
    2. 드라이버 개체에 대한 확장을 할당합니다.
    3. ControllerInterface를 드라이버 확장에 복사합니다.
    4. AtaPortInitializeEx가 포트 드라이버의 초기화를 완료하면 미니포트 드라이버의 DriverEntry 루틴으로 돌아갑니다.
  3. 어댑터 디바이스를 시작하는 동안 컨트롤 작업 IdeStart를 사용하여 포트 드라이버에서 미니포트 드라이버 루틴 AtaAdapterControl을 호출합니다.
  4. ATA 포트 드라이버가 채널 디바이스 시작 요청을 처리하는 경우 컨트롤러의 각 채널에 대해 미니포트 드라이버 루틴 AtaControllerChannelEnabled 가 호출되어 사용 여부를 확인합니다.
  5. AtaControllerChannelEnabled 루틴이 사용하도록 설정된 채널을 결정한 후 ATA 포트 드라이버는 이 채널에 대해 AtaChannelInitRoutine을 호출합니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 irb.h(Ata.h, Irb.h 포함)
라이브러리 Pciidex.lib

추가 정보

AtaChannelInitRoutine

AtaControllerChannelEnabled

DriverEntry

IDE_CONTROLLER_CONFIGURATION