다음을 통해 공유


AtaPortGetUnCachedExtension 함수(irb.h)

AtaPortGetUncachedExtension 루틴은 CPU 및 디바이스에서 공유하는 캐시되지 않은 공통 버퍼를 할당합니다.

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

구문

PVOID AtaPortGetUnCachedExtension(
  [in] PVOID ChannelExtension,
  [in] ULONG UncachedExtensionSize,
  [in] ULONG IrbExtensionSize
);

매개 변수

[in] ChannelExtension

채널 확장에 대한 포인터입니다.

[in] UncachedExtensionSize

캐시되지 않은 공통 버퍼의 길이(바이트)를 지정합니다. 미니포트 드라이버에 캐시되지 않은 확장이 필요하지 않은 경우 이 매개 변수를 0으로 설정합니다.

[in] IrbExtensionSize

요청 스토리지당 미니포트 드라이버에 필요한 크기(바이트)를 지정합니다(있는 경우).

미니포트 드라이버가 스토리지가 필요한 IRB 정보별로 유지 관리하지 않는 경우 이 매개 변수 집합을 0으로 설정합니다.

반환 값

AtaPortGetUncachedExtension 은 캐시되지 않은 확장에 대한 가상 주소 포인터를 반환합니다. 요청된 메모리를 할당할 수 없거나 메모리가 이전에 할당된 경우 NULL을 반환합니다.

설명

미니포트 드라이버는 특정 요청을 처리하는 데 필요한 데이터와 같이 드라이버 결정 요청 관련 정보에 대한 스토리지로 IRB 확장을 사용할 수 있습니다.

포트 드라이버는 IRB 확장을 초기화하지 않지만 미니포트 드라이버에 보내는 각 IRB의 확장에 대한 포인터를 설정합니다.

HBA 하드웨어는 IRB 확장에 안전하게 액세스할 수 있습니다.

미니포트 드라이버는 IdeHwControl 루틴 이외의 루틴에서 AtaPortGetUncachedExtension을 호출해서는 안 되며 StartChannel의 제어 작업을 처리하는 경우에만 호출하면 안 됩니다. 다른 미니포트 드라이버 루틴에서 AtaPortGetUncachedExtension 을 호출하면 잘못된 작업 또는 시스템 오류가 발생합니다. 포트 드라이버는 StopChannel 컨트롤 작업을 사용하여 IdeHwControl을 호출한 후 캐시되지 않은 확장을 자동으로 해제합니다.

요구 사항

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

추가 정보

IdeHwControl