Função AtaPortGetUnCachedExtension (irb.h)
A rotina AtaPortGetUncachedExtension aloca um buffer comum não armazenado em cache 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 de 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 miniporto não exigir uma extensão não armazenado 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.
Retornar valor
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.
Comentários
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 miniport.
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 IdeHwControl e somente quando estiver processando uma ação de controle do StartChannel. Chamadas de AtaPortGetUncachedExtension de outras rotinas de driver de miniporto resultam em uma operação incorreta ou até mesmo falha do 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 |
---|---|
Plataforma de Destino | Área de Trabalho |
Cabeçalho | irb.h (inclua Ata.h, Irb.h) |
Biblioteca | Ataport.lib; Pciidex.lib |