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 |