다음을 통해 공유


ScsiPortGetUncachedExtension 함수(srb.h)

ScsiPortGetUncachedExtension 루틴은 CPU 및 DMA용 버스 master HBA 또는 공유 데이터에 모두 사용할 수 있는 메모리를 할당합니다.

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

구문

SCSIPORT_API PVOID ScsiPortGetUncachedExtension(
  [in] PVOID                           HwDeviceExtension,
  [in] PPORT_CONFIGURATION_INFORMATION ConfigInfo,
  [in] ULONG                           NumberOfBytes
);

매개 변수

[in] HwDeviceExtension

하드웨어 디바이스 확장에 대한 포인터입니다. 포트 드라이버가 미니포트 드라이버를 대신하여 할당하고 초기화하는 HBA별 스토리지 영역입니다. 미니포트 드라이버는 일반적으로 HBA 상태 및 HBA의 매핑된 액세스 범위와 같은 HBA 관련 정보를 이 확장에 저장합니다. 이 영역은 미니포트 드라이버가 ScsiPortInitialize를 호출한 직후 HBA 디바이스 개체의 DeviceExtension-HwDeviceExtension> 멤버의 미니포트 드라이버에서 사용할 수 있습니다. 포트 드라이버는 디바이스를 제거할 때 이 메모리를 해제합니다.

[in] ConfigInfo

HBA의 DMA 기능에 대한 정보를 지정합니다. DmaChannel 또는 DmaPort, DmaWidth, DmaSpeed, MaximumTransferLength, ScatterGather, Master set to TRUE, NumberOfPhysicalBreaks, AdapterInterfaceType, Dma32BitAddresses, SystemIoBusNumber, AutoRequestSenseSrbExtensionSize 멤버를 채워야 합니다.

EISA 버스 master 어댑터의 DmaChannel과 같이 HBA와 관련이 없는 멤버는 있는 그대로 두어야 합니다.

[in] NumberOfBytes

할당할 캐시되지 않은 확장의 크기(바이트)를 나타냅니다. Windows XP 및 이전 운영 체제의 드라이버는 100KB 이상의 캐시되지 않은 확장을 할당해서는 안 되며 최대 절전 모드 파일 또는 크래시 덤프 파일에서 I/O 작업에 참여하는 경우 할당된 캐시되지 않은 확장의 양을 32KB 미만으로 제한해야 합니다.

반환 값

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

설명

ScsiPortGetUncachedExtension은 미니포트 드라이버의 HwScsiFindAdapter 루틴에서만 호출할 수 있으며 버스 master HBA에 대해서만 호출할 수 있습니다. 다른 미니포트 드라이버 루틴에서 호출하면 호출자에 대한 시스템 오류 또는 잘못된 작업이 발생합니다.

고급 머신에는 캐시와 큰 메모리가 있으므로 HBA와 CPU 간에 공유할 메모리는 특별히 할당되어야 합니다. 시스템 메모리의 사서함 또는 I/O 요청 큐는 이러한 유형의 공유 메모리의 예입니다.

미니포트 드라이버는 SrbExtensionSize 를 설정해야 합니다. ScsiPortGetUncachedExtension 을 호출하기 전에 NumberOfPhysicalBreaks에 따라 요청당 스토리지의 크기를 변경합니다.

HwScsiFindAdapter 루틴은 미니포트 드라이버가 지원하는 각 버스 master HBA에 대해 ScsiPortGetUncachedExtension을 한 번만 호출할 수 있습니다.

HBA에서 사용할 수 있는 캐시되지 않은 확장의 실제 주소를 가져오려면 ScsiPortGetPhysicalAddress를 호출합니다.

ScsiPort 드라이버는 어댑터 디바이스가 중지될 때 ScsiPortGetUncachedExtension 에서 할당한 메모리를 해제합니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 srb.h(Miniport.h, Scsi.h 포함)
라이브러리 Scsiport.lib

추가 정보

HwScsiFindAdapter

SCSI(PORT_CONFIGURATION_INFORMATION)

ScsiPortGetPhysicalAddress