Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Метод Notify
должен вызываться из подпрограммы службы прерываний драйвера miniport (ISR) при возникновении аппаратного прерывания. Этот вызов запрашивает, что драйвер порта вызывает минипорт-драйвер обратно с отложенным вызовом процедуры (DPC), а драйвер мини-порта обрабатывает прерывание.
Синтаксис
void Notify(
[in, optional] PSERVICEGROUP ServiceGroup
);
Параметры
[in, optional] ServiceGroup
Указатель на объект IServiceGroup. Этот параметр является необязательным и может быть указан как NULL. Дополнительные сведения см. в следующем разделе "Примечания".
Возвращаемое значение
Отсутствует
Замечания
Метод Notify
отправляет уведомление в группу служб драйвера miniport:
-
Если параметр pServiceGroup не имеет значения NULL,
Notify
метод вызывает метод RequestService в объекте IServiceGroup , на который указывает этот параметр. - Если pServiceGroup имеет значение NULL:
- Метод
Notify
вызывает метод RequestService в объекте IServiceGroup драйвера минипорта. Это объект IServiceGroup , который выводит драйвер минипорта во время вызова IMiniportDMus::Init . Драйвер минипорта также может зарегистрировать этот объект раньше (то есть раньше, чем возврат из Init), вызвав IPortDMus::RegisterServiceGroup. - Метод
Notify
также вызывает метод RequestService в объекте IServiceGroup , принадлежащем каждому из потоков драйвера минипорта. Это объект IServiceGroup , выводящий метод IMiniportDMus::NewStream .
- Метод
Notify
уведомление драйвера порта о том, что звуковое устройство создало аппаратное прерывание. Если сигнал прерывания, например, что некоторые регистры должны быть прочитаны, isR минипорта драйвера не может получить доступ к графу MXF (фильтр преобразования MIDI) на повышенных уровнях IRQL. Вместо этого минипорт-драйвер может хранить входные данные (байт данных MIDI, например) из регистра, вызова Notify
и ожидания возврата драйвера порта к нему с помощью DPC.
При вызове Notify
ISR драйвера минипорта драйвер порта получает уведомление при прерывании IRQL с повышенными привилегиями аппаратного прерывания и помещает DPC в очередь. Когда IRQL падает в DISPATCH_LEVEL, DPC драйвера порта запускает и обслуживает минипорт-драйвер.
В DPC драйвер порта вызывает IMXF::P utMessage в потоке ввода драйвера минипорта с параметром NULL , чтобы учесть, что драйвер мини-порта теперь может поместить ранее сохраненное сообщение MIDI в граф MXF, так как IRQL вернулся к DISPATCH_LEVEL.
Этот метод жизненно важен для точного времени. Большинство минипортов вызовет этот метод в ответ на прерывание уведомления после очистки источника прерывания. Хотя минипорт-драйвер может использовать другие методы для определения времени вызова этого метода, важно точное время и должно поддерживаться.
Когда драйвер адаптера устанавливает ISR, он отправляет параметр ServiceContext вместе с точкой входа ISR (дополнительные сведения см. в предоставлении сведений о контексте ISR). При прерывании операционная система вызывает ISR и передает ServiceContext в качестве параметра вызова в ISR. Хотя значение параметра ServiceContext известно только разработчику драйвера, это, как правило, указатель на минипорт-объект. IsR использует этот указатель для доступа к сведениям о минипорте.
Параметр pServiceGroup следует соглашениям подсчета ссылок для объектов COM.
Требования
Требование | Ценность |
---|---|
целевая платформа | Рабочий стол |
Заголовок | dmusicks.h (include Dmusicks.h) |
IRQL | Любой уровень |