IDE_HW_BUILDIO função de retorno de chamada (irb.h)

A rotina do driver de miniporta IdeHwBuildIo é chamada uma vez para cada solicitação de E/S de entrada.

Nota O driver de porta do ATA e os modelos de driver de miniporta do ATA podem ser alterados ou indisponíveis no futuro. Em vez disso, recomendamos usar os modelos de driver storport e driver de miniporto Storport .
 

Sintaxe

IDE_HW_BUILDIO IdeHwBuildio;

BOOLEAN IdeHwBuildio(
  [in] PVOID ChannelExtension,
  [in] PIDE_REQUEST_BLOCK Irb
)
{...}

Parâmetros

[in] ChannelExtension

Um ponteiro para a extensão de canal do driver de miniport.

[in] Irb

Um ponteiro para uma estrutura do tipo IDE_REQUEST_BLOCK que define o IRB (bloco de solicitação de entrada/saída) do IDE (Dispositivo Integrado) a ser processado.

Retornar valor

IdeHwBuildIo retorna TRUE para confirmar o recebimento da estrutura de IDE_REQUEST_BLOCK . O driver de porta ignora um valor retornado de FALSE.

Comentários

Os drivers de miniporta fornecem uma rotina AtaHwBuildlo que executa o processamento de E/S não sincronizado com interrupções habilitadas. Depois que o IdeHwBuildIo conclui todo o processamento não sincronizado de uma solicitação, ele retorna ao driver de porta e o driver de porta passa a solicitação para a rotina IdeHwStartIo do driver de miniport, que executa as tarefas que exigem sincronização.

O driver de miniporta deve observar determinadas restrições enquanto executa a rotina IdeHwBuildIo . O driver de miniporta chama IdeHwBuildIo sem manter bloqueios. Em particular, o driver de miniporta não deve tocar em nenhum dado compartilhado em sua extensão de canal, nem pode chamar qualquer uma das rotinas exportadas pelo driver de porta do ATA.

Se o driver de miniporto precisar concluir uma solicitação enquanto executa a rotina IdeHwBuildIo, ele deverá atribuir o valor de status de conclusão apropriado ao membro IrbStatus da estrutura IDE_REQUEST_BLOCK apontada pelo parâmetro Irb. O driver de miniporto não deve definir IrbStatus como um valor de IRB_STATUS_PENDING.

O driver de miniporta pode usar a rotina IdeHwBuildIo para indicar ao driver de porta como um IRB deve ser tratado. Por exemplo, o driver de miniporto pode solicitar que o driver de porta mapeie o buffer no DataBuffer definindo o membro IrbFlags do IRB com o valor apropriado. O driver de miniporta não deve solicitar que o buffer associado a uma solicitação seja mapeado, a menos que a solicitação seja algum tipo de transferência de dados.

A rotina IdeHwBuildIo é semelhante à rotina HwStorBuildIo do Storport na funcionalidade. Para obter mais informações sobre a rotina HwStorBuildIo , consulte Rotina HwStorBuildIo não sincronizada.

IdeHwBuildIo é uma rotina opcional.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho irb.h (incluir Irb.h)

Confira também

IDE_REQUEST_BLOCK

IdeHwStartIo