Метод IPortWavePci::Notify (portcls.h)
Метод Notify
уведомляет драйвер порта о том, что произошло прерывание, указывающее на ход выполнения указателя DMA.
Синтаксис
void Notify(
[in] PSERVICEGROUP ServiceGroup
);
Параметры
[in] ServiceGroup
Указатель на объект IServiceGroup драйвера мини-порта.
Возвращаемое значение
None
Remarks
Некоторые драйверы мини-портов вызывают этот метод из ISR в ответ на аппаратное прерывание после очистки источника прерывания. Другие драйверы вызывают этот метод из таймера DPC, который должен выполняться через регулярные интервалы. Как правило, только драйверы, управляющие одним потоком отрисовки из KMixer, должны полагаться на аппаратные прерывания. Драйверы, поддерживающие аппаратное ускорение DirectSound, должны отключать аппаратные прерывания и использовать контроллеры данных таймера. Дополнительные сведения см. в разделе IPortWavePciStream::GetMapping.
Хотя драйвер мини-порта может выбрать собственный метод для определения того, когда следует вызывать этот метод, этот метод следует вызывать достаточно часто, чтобы драйвер порта запускал события позиции и часов с регулярными интервалами. Однако время для этого метода не так важно, как для метода IPortWaveCyclic::Notify .
Когда драйвер адаптера устанавливает ISR, он отправляет параметр ServiceContext вместе с точкой входа ISR (дополнительные сведения см. в статье Предоставление сведений о контексте ISR). При прерывании операционная система вызывает ISR и передает ServiceContext в качестве параметра вызова в ISR. Хотя значение параметра ServiceContext известно только разработчику драйвера, обычно это указатель на объект miniport. ISR использует этот указатель для доступа к сведениям об объекте мини-порта.
Параметр ServiceGroup следует соглашениям о подсчете ссылок для COM-объектов.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | portcls.h (включая Portcls.h) |
IRQL | Любой уровень |