ACCESS_RANGE 구조체(strmini.h)

ACCESS_RANGE HBA에서 사용하는 메모리 또는 I/O 포트 범위를 설명합니다.

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

구문

typedef struct _ACCESS_RANGE {
  SCSI_PHYSICAL_ADDRESS RangeStart;
  ULONG                 RangeLength;
  BOOLEAN               RangeInMemory;
} ACCESS_RANGE, *PACCESS_RANGE;

멤버

RangeStart

범위의 버스 상대 기준 주소를 지정하는 SCSI_PHYSICAL_ADDRESS 형식의 주소를 포함합니다. ScsiPortGetDeviceBase로 전달할 수 있는 주소입니다.

RangeLength

범위의 포트 크기, 바이트 또는 개수를 지정합니다. 미니포트 드라이버는 이 값이 어댑터에서 실제로 디코딩된 범위와 일치하는지 확인해야 합니다. 예를 들어 HBA에서 7개의 레지스터를 사용하지만 8에 응답하는 경우 이 멤버는 8로 설정해야 합니다.

RangeInMemory

범위가 I/O 공간이 아닌 TRUE일 때 메모리에 있음을 나타냅니다. FALSE이면 범위가 I/O 공간에 있습니다.

Reserved

설명

각 ACCESS_RANGE 미니포트 드라이버의 HwScsiFindAdapter 루틴에 전달되는 PORT_CONFIGURATION_INFORMATION 구조 내의 AccessRanges 배열 요소입니다.

가능하면 OS 관련 포트 드라이버는 미니포트 드라이버의 HwScsiFindAdapter 루틴을 호출하기 전에 미니포트 드라이버에 대한 버스 상대 HBA 범위로 각 액세스 범위 요소를 설정합니다. 그렇지 않으면 포트 드라이버가 구성 정보를 제공할 수 없는 요소 범위가 0입니다.

포트 드라이버가 범위를 제공하는 경우 미니포트 드라이버의 HwScsiFindAdapter 루틴은 제공된 주소만 사용해야 하며 자체 고안의 주소를 사용하여 동일한 버스에서 다른 HBA를 찾으려고 시도 해서는 안 됩니다. 포트 드라이버가 범위 정보를 제공한 경우, 특히 일부 디바이스가 x86 실제 모드로 초기화되는 x86 전용 시스템에서 다른 버스 상대 포트 또는 메모리 범위에 액세스하려고 하면 버스의 다른 디바이스가 초기화에 실패하거나 시스템이 부팅 프로세스에 실패할 수 있습니다.

각 미니포트 드라이버에는 OS 관련 포트 드라이버가 정보를 제공할 수 없는 경우 시도할 버스 상대 기본 범위 집합이 있어야 합니다. 미니포트 드라이버는 ScsiPortGetDeviceBase를 사용하여 이러한 범위를 매핑하고 반환된 논리 주소를 사용하여 어댑터에 액세스하기 전에 미니포트 드라이버 제공 액세스 범위의 안전을 검사 ScsiPortValidateRange를 호출해야 합니다. 특히 HBA 중 하나에 BIOS가 있는 경우.

PORT_CONFIGURATION_INFORMATION OS 관련 포트 드라이버에 대해 미니포트 드라이버가 채우는 모든 액세스 범위에는 RangeStart 멤버가 ScsiPortGetBusData에서 반환된 값과 같이 버스 상대 주소로 설정되어야 합니다.

ScsiPortGetDeviceBase에서 반환하는 해당 기본 논리 주소는 일반적으로 미니포트 드라이버의 디바이스 확장에 ScsiPortRead Xxx 및 ScsiPortWriteXxx 루틴을 호출하는 데 사용되는 매핑된 I/O 포트 또는 메모리 주소의 RangeStart 주소로 저장되어야 합니다.

요구 사항

요구 사항
헤더 strmini.h(Srb.h, Storport.h, Strmini.h 포함)

추가 정보

SCSI(PORT_CONFIGURATION_INFORMATION)

ScsiPortGetBusData

ScsiPortGetDeviceBase

ScsiPortValidateRange

ScsiPortConvertUlongToPhysicalAddress

HwScsiFindAdapter