다음을 통해 공유


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