Condividi tramite


IDE_DEVICE_PARAMETERS struttura (irb.h)

La struttura IDE_DEVICE_PARAMETERS contiene informazioni di configurazione fornite dal driver di porta al driver miniport per configurare un dispositivo.

Nota I modelli di driver di porta ATA e ATA miniport possono essere modificati o non disponibili in futuro. È invece consigliabile usare i modelli di driver Storport e Miniport Storport.
 

Sintassi

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;

Members

Version

Indica le dimensioni della struttura Dei parametri del dispositivo . Il driver miniport deve verificare che sizeof(IDE_DEVICE_PARAMETERS) sia minore o uguale al campo Version .

IdeDeviceType

Indica il tipo del dispositivo. I tipi di dispositivo consentiti sono DeviceIsAta per dispositivi ATA, DeviceIsAtapi per dispositivi ATAPI e DeviceNotExist se non è stato trovato alcun dispositivo a tale indirizzo. Gli altri campi di questa struttura non sono validi se IdeDeviceType è impostato su DeviceNotExist.

TargetId

Specifica l'ID di destinazione del dispositivo.

MaximumLun

Il driver miniport deve aggiornare questo campo per indicare il numero massimo di unità logica supportato da questo dispositivo. Per impostazione predefinita, il membro è impostato su 0 che indica l'esistenza di un solo LUN.

NumberOfOverlappedRequests

Il driver miniport deve aggiornare questo campo per specificare il numero di richieste sovrapposte che può gestire per questo dispositivo. Per impostazione predefinita, il membro è impostato su 1.

MaxBlockXfer

Specifica il numero di settori in un blocco di dati da trasferire. Questo valore si applica ai blocchi di dati usati nei comandi di trasferimento a blocchi ATA, ad esempio Read Multiple (0xC4), Write Multiple (0xC5). Per altre informazioni sui comandi ReadMultiple e WriteMultiple, vedere la specifica ATA.

DeviceCharacteristics

Specifica le caratteristiche del dispositivo. La tabella seguente elenca le caratteristiche che possono essere impostate in questo membro. Il byte elevato di questo membro è opaco e non deve essere modificato dal miniport ATA.

Caratteristica del dispositivo Descrizione
DFLAGS_REMOVABLE_MEDIA Indica che l'unità dispone di supporti rimovibili
DFLAGS_ REMOVABLE_DEVICE Indica che il dispositivo può essere scollegato in modo sicuro
DFLAGS_FUA_SUPPORT Indica che il dispositivo supporta FUA (Force Unit Access)
DFLAGS_INT_DRQ Indica che l'interruzione del dispositivo come ripristino di emergenza viene impostata dopo la ricezione del comando pacchetto ATAPI
DFLAGS_MSN_SUPPORT Indica che il dispositivo supporta la notifica dello stato multimediale.

AddressTranslation

Contiene un valore di enumerazione di tipo ATA_ADDRESS_TRANSLATION che specifica il tipo di conversione degli indirizzi usato durante i trasferimenti di dati.

MaxLba

Specifica l'indirizzo di blocco logico indirizzabile dall'utente massimo. Questo membro viene definito quando AddressTranslation è uguale a LbaMode o Lba48BitMode.

Chs

Specifica la geometria dell'unità con i valori per il numero di cilindri, le teste per ogni cilindro e i settori per traccia. Questo membro viene definito quando AddressTranslation è uguale a ChsMode.

Chs.NumCylinders

Chs.NumHeads

Chs.NumSectorsPerTrack

Chs.Reserved

BytesPerLogicalSector

Questo membro specifica il numero di byte per settore logico (LBA) per il dispositivo specificato.

BytesPerPhysicalSector

Questo membro specifica il numero di byte per ogni settore fisico, ovvero la quantità di dati più piccola che il dispositivo può scrivere fisicamente internamente, per il dispositivo specificato.

BytesOffsetForSectorAlignment

Questo membro specifica la posizione del settore 0 all'interno del primo settore fisico, come definito nella specifica ATA rappresentata in byte.

TransferModeSupported

Contiene una bitmap che indica le modalità di trasferimento supportate.

TransferModeSelected

Indica le modalità di trasferimento selezionate nel dispositivo. Il driver miniport deve impostare questo membro.

Commenti

Il driver di porta passa una struttura IDE_DEVICE_PARAMETERS al driver miniport quando chiama IdeHwInitialize.

Requisiti

Requisito Valore
Intestazione irb.h (includere Irb.h)

Vedi anche

ATA_ADDRESS_TRANSLATION

IDE_DEVICE_TYPE

IdeHwInitialize