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.
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) |