Функция KsPinRegisterIrpCompletionCallback (ks.h)
Функция KsPinRegisterIrpCompletionCallback регистрирует определяемую мини-driver процедуру обратного вызова для указанного контакта. AVStream вызывает подпрограмму, предоставляемую мини-driver, когда IRP завершает проход вокруг цепи и кадр, связанный с IRP, скоро будет перезагрущен или выведен из эксплуатации.
Синтаксис
void KsPinRegisterIrpCompletionCallback(
[in] PKSPIN Pin,
[in] PFNKSPINIRPCOMPLETION IrpCompletion
);
Параметры
[in] Pin
Указатель на структуру KSPIN , для которой регистрируется обратный вызов завершения.
[in] IrpCompletion
Этот параметр предоставляет адрес подпрограммы AVStrMiniPinIrpCompletion , которая будет вызвана, когда IRP завершит обход канала и будет переработана или прекращена.
Возвращаемое значение
None
Remarks
KsPinRegisterIrpCompletionCallback необходимо вызвать по адресу IRQL=PASSIVE_LEVEL, прежде чем контакт перейдет в KSSTATE_ACQUIRE. Дополнительные сведения о состояниях закрепления см. в разделе KSSTATE.
Эта функция часто вызывается из диспетчера создания контактов. См . KSPIN_DISPATCH.
KsPinRegisterIrpCompletionCallback полезен только для контактов источника IRP и обычно используется для контактов источника данных. Для пин-кода источника данных обратный вызов выполняется после того, как IRP будет завершена обратно в контакт и будет удалена. Однако для контакта приемника данных обратный вызов не привязан непосредственно к завершению IRP. AVStream по-прежнему выполняет обратный вызов, когда IRP возвращается для повторного использования. Этот возврат не выполняется до тех пор, пока IRP не пройдет через все очереди, которые должны использовать содержащиеся в ней данные. Сведения об источниках и приемниках IRP и контактах источника данных и приемника см. в разделе Элементы потока данных и связи структуры KSPIN_DESCRIPTOR .
KsPinRegisterIrpCompletionCallback значительно отличается от KsPinRegisterFrameReturnCallback тем, что эта подпрограмма не помещает закрепление в новый режим; он просто регистрирует подпрограмму обратного вызова.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в операционных системах Microsoft Windows XP и более поздних версиях, а также DirectX 8.0 и более поздних версий. |
Целевая платформа | Универсальное |
Верхняя часть | ks.h (включая Ks.h) |
Библиотека | Ks.lib |
IRQL | PASSIVE_LEVEL |