AtaPortGetUnCachedExtension 함수(irb.h)
AtaPortGetUncachedExtension 루틴은 CPU 및 디바이스에서 공유하는 캐시되지 않은 공통 버퍼를 할당합니다.
구문
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 |