функция обратного вызова PSDBUS_ACKNOWLEDGE_INT_ROUTINE (ntddsd.h)
Прототип PSDBUS_ACKNOWLEDGE_INT_ROUTINE объявляет подпрограмму, которую должен вызвать драйвер устройства Secure Digital (SD), чтобы подтвердить водителю автобуса, что он завершил обработку прерывания.
Синтаксис
PSDBUS_ACKNOWLEDGE_INT_ROUTINE PsdbusAcknowledgeIntRoutine;
NTSTATUS PsdbusAcknowledgeIntRoutine(
[in] PVOID Context
)
{...}
Параметры
[in] Context
Содержит контекст интерфейса, который возвращает подпрограмма SdBusOpenInterface в элементе контекстаSDBUS_INTERFACE_STANDARD.
Возвращаемое значение
Возвращает STATUS_UNSUCCESSFUL, если операция выполнена успешно, или соответствующее сообщение об ошибке, если операция завершается ошибкой.
Замечания
Когда устройство SD утверждает прерывание, драйвер шины отключает прерывание, которое устройство утверждало, чтобы разрешить драйверу устройства выполнять операции ввода-вывода в IRQL <=DISPATCH_LEVEL. Когда подпрограмма обратного вызова водителя устройства, которая эквивалентна подпрограмме службы прерываний, завершает очистку прерывания, она должна признать, что она завершила обработку прерываний, чтобы водитель шины мог повторно включить отключенное прерывание.
Традиционно водители признают прерывания, просто возвращая соответствующее значение из подпрограммы службы прерываний (ISR). Если драйверы полагаются на этот метод, они ограничены для подтверждения прерываний в том порядке, в который они получают. С другой стороны, драйвер SD-карты не ограниченно для подтверждения прерываний в том порядке, в который они получены. Как правило, водитель SD-карты может сообщить о нескольких прерываниях водителю автобуса (см. PSDBUS_CALLBACK_ROUTINE) перед подтверждением любого из них. В обычных условиях работы драйвер SD-карты откладывает подтверждение прерывания до очистки состояния прерывания на устройстве.
Вызывающий объект должен работать в IRQL <= DISPATCH_LEVEL, когда он признает, что он завершил обработку прерывания.
Требования
Требование | Ценность |
---|---|
целевая платформа | Настольный |
заголовка | ntddsd.h (include Ntddsdd.h) |
IRQL | <=DISPATCH_LEVEL (см. раздел "Примечания".) |