ATA 포트 드라이버 지원 루틴
이 페이지는 시스템에서 제공하는 ATA 포트 드라이버에서 제공하는 지원 루틴을 분류합니다.
ATA 드라이버 미니포트 루틴 목록은 ATA 미니포트 드라이버를 참조하세요.
초기화 루틴
ATA 포트 드라이버는 다음과 같은 초기화 루틴을 제공합니다.
루틴에서 반환된 값 | Description |
---|---|
AtaPortInitializeEx | 포트 및 미니포트 드라이버를 초기화합니다. |
PCI 구성 공간 액세스에 대한 루틴
ATA 포트 드라이버는 디바이스의 PCI 구성 공간 내용을 읽고 수정하는 데 도움이 되는 다음 루틴을 제공합니다.
루틴에서 반환된 값 | Description |
---|---|
AtaPortGetBusData | 디바이스의 PCI 구성 공간 내의 지정된 위치에서 데이터를 검색합니다. |
AtaPortSetBusData | 는 지정된 오프셋에 표시된 디바이스의 PCI 구성 공간에 데이터를 저장합니다. |
I/O 요청을 처리하기 위한 루틴
ATA 포트 드라이버는 다음과 같은 I/O 요청 처리 지원 루틴을 제공합니다.
루틴에서 반환된 값 | Description |
---|---|
AtaPortGetScatterGatherList | 이 요청과 연결된 분산/수집 목록을 검색합니다. |
AtaPortGetPhysicalAddress | 가상 주소 범위를 실제 주소 범위로 변환합니다. |
AtaPortGetDeviceBase | HBA(호스트 버스 어댑터)와 통신하는 데 사용되는 매핑된 논리 기본 주소를 반환합니다. |
AtaPortGetUncachedExtension | CPU 및 디바이스에서 공유하는 캐시되지 않은 공통 버퍼를 할당합니다. |
AtaPortBuildRequestSenseIrb | 작업 코드 SCSIOP_REQUEST_SENSE 대한 IRB를 빌드하고 반환합니다. |
AtaPortReleaseRequestSenseIrb | AtaPortBuildRequestSenseIrb을 사용하여 할당된 요청 센스 IRB를 해제합니다. |
AtaPortCompleteAllActiveRequests | 표시된 디바이스에 대한 모든 활성 IRB를 완료합니다. |
AtaPortCompleteRequest | 표시된 IRB를 완료합니다. |
콜백 루틴
미니포트 드라이버는 여러 루틴을 사용하여 포트 드라이버에서 콜백을 요청합니다.
루틴에서 반환된 값 | Description |
---|---|
AtaPortRequestWorkerRoutine | 작업자 루틴을 요청합니다. |
AtaPortRequestSynchronizedRoutine | ISR(인터럽트 서비스 루틴)과의 동기화를 요청합니다. |
AtaPortControllerSyncRoutine | 컨트롤러의 모든 채널에서 공유되는 데이터 구조에 대한 동기화된 액세스를 제공합니다. |
AtaPortRequestTimer | 타이머 콜백을 요청합니다. |
구성 변경을 보고하는 루틴
다음 루틴을 사용하면 미니포트 드라이버가 채널에 연결된 디바이스의 구성에 대한 변경 내용을 ATA 포트 드라이버에 알릴 수 있습니다.
루틴에서 반환된 값 | Description |
---|---|
AtaPortBusChangeDetected | 포트 드라이버에 표시된 채널의 디바이스 구성 변경 내용을 알 수 있습니다. |
AtaPortRequestPowerStateChange | 표시된 디바이스에 대한 전원 상태 전환을 요청합니다. |
요청 큐를 제어하는 루틴
포트 드라이버는 LUN(논리 단위 번호) 요청 큐당 하나씩, 각 채널에 대해 하나의 요청 큐를 유지 관리합니다. 미니포트 드라이버는 다음 루틴을 사용하여 다른 요청 큐를 일시 중지하고 다시 시작할 수 있습니다.
루틴에서 반환된 값 | Description |
---|---|
AtaPortDeviceBusy | 표시된 디바이스가 사용 중임을 포트 드라이버에 알릴 수 있습니다. |
AtaPortDeviceReady | 표시된 디바이스가 새 요청을 수락할 준비가 되었음을 포트 드라이버에 알릴 수 있습니다. |
유틸리티 루틴
다음 루틴은 미니포트 드라이버에 대한 일반 유틸리티 지원 함수입니다.
루틴에서 반환된 값 | Description |
---|---|
AtaPortCopyMemory | 한 위치에서 다른 위치로 데이터를 복사합니다. |
**AtaPortMoveMemory 루틴 | 한 위치에서 다른 위치로 데이터를 복사합니다. |
AtaPortConvertUlongToPhysicalAddress | 지정된 ULONG 주소를 IDE_PHYSICAL_ADDRESS 형식의 값으로 변환합니다. |
AtaPortConvertPhysicalAddressToUlong | ULONG에 IDE_PHYSICAL_ADDRESS 형식의 주소를 자립니다. |
AtaPortStallExecution | 미니포트 드라이버의 노점. |
AtaPortInitializeQueueTag | 지정된 디바이스에 대한 큐 태그 목록을 초기화합니다. |
AtaPortAllocateQueueTag | 지정된 디바이스에 대한 큐 태그를 반환합니다. |
AtaPortReleaseQueueTag | 지정된 큐 태그를 해제합니다. |
디버그 및 오류 보고 루틴
디버그 및 오류 보고에는 다음 루틴을 사용할 수 있습니다.
루틴에서 반환된 값 | Description |
---|---|
AtaPortDebugPrint | 디버거가 인쇄할 커널 디버거에 메시지 문자열을 전달합니다. |
디바이스 포트 및 등록 액세스에 대한 루틴
ATA 포트 드라이버는 다음 포트 및 등록 액세스 지원 루틴을 제공합니다.
루틴에서 반환된 값 | Description |
---|---|
AtaPortReadPortBufferUchar | 지정된 수의 부호 없는 바이트 값을 HBA에서 버퍼로 전송합니다. |
AtaPortReadPortBufferUlong | 지정된 수의 ULONG 값을 HBA에서 버퍼로 전송합니다. |
AtaPortReadPortBufferUshort | 지정된 수의 USHORT 값을 HBA에서 버퍼로 전송합니다. |
AtaPortReadPortUchar | HBA에서 부호 없는 바이트 값을 읽습니다. |
AtaPortReadPortUlong | HBA에서 ULONG 값을 읽습니다. |
AtaPortReadPortUshort | HBA에서 USHORT 값을 읽습니다. |
AtaPortReadRegisterBufferUchar | 지정된 수의 부호 없는 바이트를 HBA에서 버퍼로 전송합니다. |
AtaPortReadRegisterBufferUlong | 지정된 수의 ULONG을 HBA에서 버퍼로 전송합니다. |
AtaPortReadRegisterBufferUshort | 지정된 수의 USHORT를 HBA에서 버퍼로 전송합니다. |
AtaPortReadRegisterUchar | HBA에서 부호 없는 바이트 값을 읽습니다. |
AtaPortReadRegisterUlong | HBA에서 ULONG 값을 읽습니다. |
AtaPortReadRegisterUshort | HBA에서 USHORT 값을 읽습니다. |
AtaPortWritePortBufferUchar | 지정된 레지스터 주소에 값을 씁니다. |
AtaPortWritePortBufferUlong | 지정된 레지스터 주소에 값을 씁니다. |
AtaPortWritePortBufferUshort | 지정된 레지스터 주소에 값을 씁니다. |
AtaPortWritePortUchar | 서명되지 않은 바이트 값을 HBA로 전송합니다. |
AtaPortWritePortUlong | ULONG 값을 HBA로 전송합니다. |
AtaPortWritePortUshort | USHORT 값을 HBA로 전송합니다. |
AtaPortWriteRegisterBufferUchar | 지정된 수의 부호 없는 바이트를 버퍼에서 HBA로 전송합니다. |
AtaPortWriteRegisterBufferUlong | 지정된 수의 ULONG 값을 버퍼에서 HBA로 전송합니다. |
AtaPortWriteRegisterBufferUshort | 버퍼에서 HBA로 지정된 수의 USHORT 값을 전송합니다. |
AtaPortWriteRegisterUchar | 서명되지 않은 바이트를 HBA 주소로 전송합니다. |
AtaPortWriteRegisterUlong | ULONG 값을 HBA 주소로 전송합니다. |
AtaPortWriteRegisterUshort | USHORT 값을 HBA 주소로 전송합니다. |
레지스트리 액세스에 대한 루틴
채널 인터페이스를 구현하는 미니포트 드라이버는 다음 루틴을 호출하여 Windows 레지스트리에 액세스할 수 있습니다. 컨트롤러 인터페이스 루틴만 구현하는 미니포트 드라이버는 이러한 루틴에 액세스할 수 없습니다.
루틴에서 반환된 값 | Description |
---|---|
AtaPortRegistryAllocateBuffer | 레지스트리 작업에 버퍼를 할당합니다. |
AtaPortRegistryFreeBuffer | AtaPortRegistryAllocateBuffer를 사용하여 할당된 레지스트리 버퍼를 해제합니다. |
AtaPortRegistryControllerKeyRead | 레지스트리 키 HKLM\CurrentControlSet\Services<\service name\ControllerN에서 표시된 값 이름과> 연결된 데이터를 읽습니다. 여기서 N은 컨트롤러의 수입니다. |
AtaPortRegistryContrlollerKeyWrite | 레지스트리 키 HKLM\CurrentControlSet\Services<\service name\ControllerN 아래에 표시된 값 이름>에 데이터를 씁니다. 여기서 N은 컨트롤러의 수입니다. |
AtaPortRegistryControllerKeyWriteDeferred | 레지스트리 키 HKLM\CurrentControlSet\Services<\service name\ControllerN 아래에 표시된 값 이름>에 데이터를 비동기적으로 씁니다. 여기서 N은 컨트롤러의 수입니다. |
AtaPortRegistryChannelSubKeyRead | 레지스트리 키 HKLM\CurrentControlSet\Services<\service name\ControllerN\ChannelM에서 표시된 값 이름과> 연결된 데이터를 읽습니다. 여기서 N은 컨트롤러의 수이고 M은 채널의 수입니다. |
AtaPortRegistryChannelSubKeyWrite | 레지스트리 키 HKLM\CurrentControlSet\Services\service name\<ControllerN\ChannelM 아래에 표시된 값 이름>에 데이터를 씁니다. 여기서 N은 컨트롤러의 수이고 M은 채널의 수입니다. |
AtaPortRegistryChannelSubKeyWriteDeferred | 레지스트리 키 HKLM\CurrentControlSet\Services\service name\ControllerN\<ChannelM 아래에 표시된 값 이름>에 데이터를 비동기적으로 씁니다. 여기서 N은 컨트롤러의 수이고 M은 채널의 수입니다. |