Função AtaPortGetUnCachedExtension (irb.h)
A rotina de AtaPortGetUncachedExtension aloca um buffer comum não armazenado que é compartilhado pela CPU e pelo dispositivo.
Sintaxe
PVOID AtaPortGetUnCachedExtension(
[in] PVOID ChannelExtension,
[in] ULONG UncachedExtensionSize,
[in] ULONG IrbExtensionSize
);
Parâmetros
[in] ChannelExtension
Um ponteiro para a extensão do canal.
[in] UncachedExtensionSize
Especifica o comprimento, em bytes, do buffer comum não armazenado em cache. Defina esse parâmetro como 0 se o driver de miniport não exigir uma extensão não em cache.
[in] IrbExtensionSize
Especifica o tamanho, em bytes, que é exigido pelo driver de miniporto para o armazenamento por solicitação, se houver.
Defina esse parâmetro definido como 0 se o driver de miniporto não mantiver por informações de IRB para as quais ele requer armazenamento.
Valor de retorno
AtaPortGetUncachedExtension retorna um ponteiro de endereço virtual para a extensão não armazenado em cache. Se não puder alocar a memória solicitada ou se a memória tiver sido alocada anteriormente, ela retornará NULL.
Observações
O driver de miniporto pode usar extensões IRB como armazenamento para informações específicas de solicitação determinadas pelo driver, como dados necessários para processar uma solicitação específica.
O driver de porta não inicializa extensões IRB, mas define um ponteiro para uma extensão em cada IRB que ele envia para o driver de miniporto.
O hardware HBA pode acessar com segurança uma extensão IRB.
O driver de miniporto não deve chamar AtaPortGetUncachedExtension de qualquer rotina diferente de sua rotina de IdeHwControl e somente quando estiver processando uma ação de controle de StartChannel. Chamadas de AtaPortGetUncachedExtension de outras rotinas de driver de miniporto resultam em uma operação incorreta ou até mesmo falha no sistema. O driver de porta libera automaticamente a extensão não em cache depois de invocar IdeHwControl com a ação de controle StopChannel.
Requisitos
Requisito | Valor |
---|---|
da Plataforma de Destino | Área de trabalho |
cabeçalho | irb.h (include Ata.h, Irb.h) |
biblioteca | Ataport.lib; Pciidex.lib |