IDE_CHANNEL_ENABLED 콜백 함수(irb.h)
AtaControllerChannelEnabled 미니포트 드라이버 루틴은 지정된 채널이 사용하도록 설정되어 있는지 여부를 나타냅니다.
참고
ATA 포트 드라이버 및 ATA 미니포트 드라이버 모델은 나중에 변경되거나 사용할 수 없습니다. 대신 Storport 드라이버 및 Storport 미니포트 드라이버 모델을 사용하는 것이 좋습니다.
구문
IDE_CHANNEL_ENABLED IdeChannelEnabled;
ATA_CHANNEL_STATE IdeChannelEnabled(
PVOID ControllerExtension,
ULONG Channel
)
{...}
매개 변수
ControllerExtension
[in] 컨트롤러 확장에 대한 포인터입니다.
Channel
[in] 사용하도록 설정할 채널입니다.
반환 값
AtaControllerChannelEnabled 는 ATA_CHANNEL_STATE 형식의 열거자 값을 반환하며, 이 값은 다음 값 중 어느 것일 수 있습니다.
반환 코드 | 의미 |
---|---|
ChannelStateEnabled | 지정된 채널이 사용하도록 설정되어 있음을 나타냅니다. |
ChannelStateDisabled | 지정된 채널이 비활성화되었음을 나타냅니다. |
ChannelStateUnKnown | 채널의 상태를 확인할 수 없음을 나타냅니다. |
설명
다음 시퀀스는 미니포트 드라이버와 포트 드라이버가 상호 작용하여 사용하도록 설정된 컨트롤러 채널을 결정하는 방법을 설명합니다.
포트 드라이버는 컨트롤 작업 IdeStart를 사용하여 미니포트 드라이버의 AtaAdapterControl 루틴을 호출합니다.
미니포트 드라이버는 제어 작업 IdeStart를 사용하여 AtaAdapterControl 루틴을 처리하는 동안 IDE_CONTROLLER_CONFIGURATIONNumberOfChannels 멤버를 초기화하여 활성화된 채널 수를 나타냅니다.
AtaAdapterControl 루틴이 반환되면 포트 드라이버는 AtaAdapterControl에서 반환하는 ControllerConfiguration 구조에 지정된 모든 NumberOfChannels에 대해 AtaControllerChannelEnabled를 한 번 호출합니다.
이 루틴에는 컨트롤러 작업에 중요한 단계가 없어야 합니다. 크래시덤프 작업 중과 같이 이 함수가 전혀 호출되지 않는 경우가 있습니다. 또한 이 함수는 채널이 다시 시작될 때 PCIIDEx가 QueryDeviceRelations IRP에 응답하는 경우에만 호출되지 않습니다.
AtaControllerChannelEnabled 는 선택적 루틴입니다. 미니포트 드라이버가 이 루틴을 구현하지 않으면 포트 드라이버가 기본 처리기를 로드합니다. 포트 드라이버가 기본 처리기를 로드하는 경우 IdeStart 작업을 처리할 때 AtaAdapterControl 에서 반환하는 ControllerConfiguration 구조에서 NumberOfChannels에 의해 지정된 모든 채널이 사용하도록 설정된 것으로 간주됩니다. 이 루틴을 사용하면 PCIIDEx가 활성화된 채널에 대해서만 ATA 포트 드라이버를 로드할 수 있습니다. 이렇게 하면 스파스 채널 지원(예: 채널 0, 채널 1, 채널 3, 채널 4 및 채널 6은 지원되지만 채널 2 및 채널 5는 지원되지 않음)이 허용됩니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | irb.h(Irb.h 포함) |