IDE_DEVICE_PARAMETERS 구조체(irb.h)
IDE_DEVICE_PARAMETERS 구조에는 포트 드라이버가 디바이스를 구성하기 위해 미니포트 드라이버에 제공하는 구성 정보가 포함되어 있습니다.
구문
typedef struct _IDE_DEVICE_PARAMETERS {
USHORT Version;
IDE_DEVICE_TYPE IdeDeviceType;
UCHAR TargetId;
UCHAR MaximumLun;
UCHAR NumberOfOverlappedRequests;
UCHAR MaxBlockXfer;
USHORT DeviceCharacteristics;
ATA_ADDRESS_TRANSLATION AddressTranslation;
union {
LARGE_INTEGER MaxLba;
struct {
USHORT NumCylinders;
USHORT NumHeads;
USHORT NumSectorsPerTrack;
USHORT Reserved;
} Chs;
};
ULONG BytesPerLogicalSector;
ULONG BytesPerPhysicalSector;
ULONG BytesOffsetForSectorAlignment;
ULONG TransferModeSupported;
ULONG TransferModeSelected;
} IDE_DEVICE_PARAMETERS, *PIDE_DEVICE_PARAMETERS;
멤버
Version
디바이스 매개 변수 구조의 크기를 나타냅니다. 미니포트 드라이버는 sizeof(IDE_DEVICE_PARAMETERS)가 버전 필드보다 작거나 같은지 확인해야 합니다.
IdeDeviceType
디바이스의 유형을 나타냅니다. 허용되는 디바이스 유형은 ATA 디바이스용 DeviceIsAta , ATAPI 디바이스용 DeviceIsAtapi 및 해당 주소에 디바이스가 없는 경우 DeviceNotExist 입니다. IdeDeviceType이 DeviceNotExist로 설정된 경우 이 구조의 다른 필드는 유효하지 않습니다.
TargetId
디바이스의 대상 ID를 지정합니다.
MaximumLun
미니포트 드라이버는 이 디바이스에서 지원하는 최대 논리 단위 번호를 나타내기 위해 이 필드를 업데이트해야 합니다. 기본적으로 멤버는 하나의 LUN만 있음을 나타내는 0으로 설정됩니다.
NumberOfOverlappedRequests
미니포트 드라이버는 이 디바이스에 대해 처리할 수 있는 겹치는 요청 수를 지정하기 위해 이 필드를 업데이트해야 합니다. 기본적으로 멤버는 1로 설정됩니다.
MaxBlockXfer
전송할 데이터 블록의 섹터 수를 지정합니다. 이 값은 다중 읽기(0xC4), 다중 쓰기(0xC5)와 같은 ATA 블록 전송 명령에 사용되는 데이터 블록에 적용됩니다. ReadMultiple 및 WriteMultiple 명령에 대한 자세한 내용은 ATA 사양을 참조하세요.
DeviceCharacteristics
디바이스 특성을 지정합니다. 아래 표에는 이 멤버에서 설정할 수 있는 특성이 나와 있습니다. 이 멤버의 높은 바이트는 불투명하며 ATA 미니포트에 의해 변경되지 않습니다.
디바이스 특성 | Description |
---|---|
DFLAGS_REMOVABLE_MEDIA | 드라이브에 이동식 미디어가 있음을 나타냅니다. |
DFLAGS_ REMOVABLE_DEVICE | 디바이스를 안전하게 분리할 수 있음을 나타냅니다. |
DFLAGS_FUA_SUPPORT | 디바이스가 FUA(Force Unit Access)를 지원한다는 것을 나타냅니다. |
DFLAGS_INT_DRQ | ATAPI 패킷 명령을 받은 후 DRQ가 설정되면 디바이스가 중단됨을 나타냅니다. |
DFLAGS_MSN_SUPPORT | 디바이스가 미디어 상태 알림을 지원한다는 것을 나타냅니다. |
AddressTranslation
데이터 전송 중에 사용되는 주소 변환의 종류를 지정하는 형식 ATA_ADDRESS_TRANSLATION 열거형 값을 포함합니다.
MaxLba
최대 LBA(사용자 주소 지정 가능 논리 블록 주소)를 지정합니다. 이 멤버는 AddressTranslation이 LbaMode 또는 Lba48BitMode와 같을 때 정의됩니다.
Chs
실린더 수, 실린더당 헤드 수 및 트랙당 섹터 값을 사용하여 드라이브 기하 도형을 지정합니다. 이 멤버는 AddressTranslation 이 ChsMode와 같을 때 정의됩니다.
Chs.NumCylinders
Chs.NumHeads
Chs.NumSectorsPerTrack
Chs.Reserved
BytesPerLogicalSector
이 멤버는 지정된 디바이스에 대한 LBA(논리 섹터당 바이트 수)를 지정합니다.
BytesPerPhysicalSector
이 멤버는 지정된 디바이스에 대해 물리적 섹터당 바이트 수(즉, 디바이스가 물리적으로 내부적으로 쓸 수 있는 가장 작은 양의 데이터)를 지정합니다.
BytesOffsetForSectorAlignment
이 멤버는 ATA 사양에 정의된 대로 첫 번째 물리적 섹터 내의 0섹션 위치를 바이트로 지정합니다.
TransferModeSupported
지원되는 전송 모드를 나타내는 비트맵을 포함합니다.
TransferModeSelected
디바이스에서 선택한 전송 모드를 나타냅니다. 미니포트 드라이버는 이 멤버를 설정해야 합니다.
설명
포트 드라이버는 IdeHwInitialize를 호출할 때 IDE_DEVICE_PARAMETERS 구조를 미니포트 드라이버에 전달합니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 | irb.h(Irb.h 포함) |