Метод IInterruptSync::RegisterServiceRoutine (portcls.h)

Метод RegisterServiceRoutine регистрирует подпрограмму службы прерываний (ISR), вызываемую при прерывании.

Синтаксис

NTSTATUS RegisterServiceRoutine(
  [in] PINTERRUPTSYNCROUTINE Routine,
  [in] PVOID                 DynamicContext,
  [in] BOOLEAN               First
);

Параметры

[in] Routine

Указатель на вызываемую подпрограмму. Этот параметр является указателем функции типа PINTERRUPTSYNCROUTINE (см. IInterruptSync).

[in] DynamicContext

Указывает значение контекста, передаваемое подпрограмме при вызове.

[in] First

Указывает, добавляется ли подпрограмма в головной или хвост списка isR. Если TRUE, подпрограмма добавляется в начале списка. Если FALSE, он добавляется в хвост.

Возвращаемое значение

RegisterServiceRoutine возвращает STATUS_SUCCESS, если вызов выполнен успешно. В противном случае метод возвращает соответствующий код ошибки.

Замечания

Этот метод добавляет указанную подпрограмму в список объектов синхронизации isR. Когда происходит прерывание, подпрограмма в голове списка вызывается первым, а подпрограмма на хвосте называется последней.

Требования

Требование Ценность
целевая платформа Всеобщий
заголовка portcls.h (include Portcls.h)
IRQL PASSIVE_LEVEL