다음을 통해 공유


IDE_DEVICE_PARAMETERS 구조체(irb.h)

IDE_DEVICE_PARAMETERS 구조에는 포트 드라이버가 디바이스를 구성하기 위해 미니포트 드라이버에 제공하는 구성 정보가 포함되어 있습니다.

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

구문

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 입니다. IdeDeviceTypeDeviceNotExist로 설정된 경우 이 구조의 다른 필드는 유효하지 않습니다.

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(사용자 주소 지정 가능 논리 블록 주소)를 지정합니다. 이 멤버는 AddressTranslationLbaMode 또는 Lba48BitMode와 같을 때 정의됩니다.

Chs

실린더 수, 실린더당 헤드 수 및 트랙당 섹터 값을 사용하여 드라이브 기하 도형을 지정합니다. 이 멤버는 AddressTranslationChsMode와 같을 때 정의됩니다.

Chs.NumCylinders

Chs.NumHeads

Chs.NumSectorsPerTrack

Chs.Reserved

BytesPerLogicalSector

이 멤버는 지정된 디바이스에 대한 LBA(논리 섹터당 바이트 수)를 지정합니다.

BytesPerPhysicalSector

이 멤버는 지정된 디바이스에 대해 물리적 섹터당 바이트 수(즉, 디바이스가 물리적으로 내부적으로 쓸 수 있는 가장 작은 양의 데이터)를 지정합니다.

BytesOffsetForSectorAlignment

이 멤버는 ATA 사양에 정의된 대로 첫 번째 물리적 섹터 내의 0섹션 위치를 바이트로 지정합니다.

TransferModeSupported

지원되는 전송 모드를 나타내는 비트맵을 포함합니다.

TransferModeSelected

디바이스에서 선택한 전송 모드를 나타냅니다. 미니포트 드라이버는 이 멤버를 설정해야 합니다.

설명

포트 드라이버는 IdeHwInitialize를 호출할 때 IDE_DEVICE_PARAMETERS 구조를 미니포트 드라이버에 전달합니다.

요구 사항

요구 사항
헤더 irb.h(Irb.h 포함)

추가 정보

ATA_ADDRESS_TRANSLATION

IDE_DEVICE_TYPE

IdeHwInitialize