PSDBUS_ACKNOWLEDGE_INT_ROUTINE função de retorno de chamada (ntddsd.h)
O protótipo PSDBUS_ACKNOWLEDGE_INT_ROUTINE declara a rotina que um driver de dispositivo SD (Secure Digital) deve chamar para confirmar ao motorista do ônibus que concluiu o processamento da interrupção.
Sintaxe
PSDBUS_ACKNOWLEDGE_INT_ROUTINE PsdbusAcknowledgeIntRoutine;
NTSTATUS PsdbusAcknowledgeIntRoutine(
[in] PVOID Context
)
{...}
Parâmetros
[in] Context
Contém o contexto de interface que a rotina SdBusOpenInterface retorna no membro Context da estrutura SDBUS_INTERFACE_STANDARD .
Retornar valor
Retorna STATUS_UNSUCCESSFUL se a operação for bem-sucedida ou a mensagem de erro apropriada se a operação falhar.
Comentários
Quando um dispositivo SD declara uma interrupção, o driver de barramento desabilita a interrupção que o dispositivo afirmou para permitir que o driver de dispositivo execute E/S em IRQL <=DISPATCH_LEVEL. Quando a rotina de retorno de chamada do driver de dispositivo, que é equivalente a uma rotina de serviço de interrupção, termina de limpar a interrupção, ele deve reconhecer que terminou o processamento de interrupção para que o motorista do barramento possa reabilitar a interrupção desabilitada.
Tradicionalmente, os drivers reconhecem interrupções simplesmente retornando o valor apropriado da ISR (rotina de serviço de interrupção). Quando os drivers dependem desse método, eles são restritos a reconhecer interrupções na ordem em que os recebem. Um driver de cartão SD, por outro lado, não é restrito a reconhecer interrupções na ordem em que são recebidas. Normalmente, um motorista de um cartão SD pode relatar várias interrupções ao motorista do ônibus (consulte PSDBUS_CALLBACK_ROUTINE) antes de confirmar qualquer um deles. Em condições normais de operação, um driver de cartão SD adia a confirmação de uma interrupção até que o estado de interrupção no dispositivo seja limpo.
O chamador deve estar em execução em IRQL <= DISPATCH_LEVEL quando reconhecer que concluiu o processamento de uma interrupção.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Área de Trabalho |
Cabeçalho | ntddsd.h (inclua Ntddsd.h) |
IRQL | <=DISPATCH_LEVEL (consulte a seção Comentários.) |