estrutura ACCESS_RANGE (storport.h)
Um ACCESS_RANGE descreve um intervalo de portas de E/S ou memória usado por um HBA.
Sintaxe
typedef struct _ACCESS_RANGE {
STOR_PHYSICAL_ADDRESS RangeStart;
ULONG RangeLength;
BOOLEAN RangeInMemory;
} ACCESS_RANGE, *PACCESS_RANGE;
Membros
RangeStart
Contém um endereço físico que especifica o endereço base relativo ao barramento de um intervalo usado pelo HBA. O valor desse membro pode ser obtido de um dos elementos AccessRanges na estrutura PORT_CONFIGURATION_INFORMATION . Esse é um endereço que pode ser passado para StorPortGetDeviceBase.
RangeLength
Especifica o tamanho, em bytes ou o número de portas no intervalo. Um driver de miniporte deve garantir que esse valor corresponda ao intervalo realmente decodificado pelo adaptador. Por exemplo, se o HBA usar sete registros, mas responder a oito, esse membro deverá ser definido como 8.
RangeInMemory
Indica que o intervalo está na memória quando TRUE, em vez de no espaço de E/S. Quando FALSE, o intervalo está no espaço de E/S.
Comentários
Cada ACCESS_RANGE é um elemento de matriz AccessRanges dentro da estrutura PORT_CONFIGURATION_INFORMATION que é passada para a rotina HwStorFindAdapter de um driver de miniport.
O Storport aloca memória para os intervalos de acesso e inicializa o membro AccessRanges . A rotina HwStorFindAdapter do driver de miniport deve usar apenas os endereços fornecidos e nunca deve tentar encontrar outros HBAs no mesmo ônibus usando endereços de sua própria criação. Tentar acessar outros intervalos de memória ou porta relativas a barramento quando o driver de porta tiver fornecido informações de intervalo, especialmente em sistemas somente x86 nos quais alguns dispositivos são inicializados no modo real x86, pode fazer com que outros dispositivos no barramento falhem na inicialização ou até mesmo façam com que o sistema falhe no processo de inicialização.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | storport.h (incluem Srb.h, Storport.h, Strmini.h) |