Функция обратного вызова PFNKSPINIRP (ks.h)

Подпрограмма мини-драйвера AVStream вызывается при выполнении действия с контактом и получает следующие irP:

Синтаксис

PFNKSPINIRP Pfnkspinirp;

NTSTATUS Pfnkspinirp(
  [in] PKSPIN Pin,
  [in] PIRP Irp
)
{...}

Параметры

[in] Pin

Указатель на только что созданный KSPIN .

[in] Irp

Указатель на IRP для закрепления.

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

Если подпрограмма завершается успешно, операция гарантированно будет успешной. Возврат STATUS_SUCCESS или STATUS_PENDING.

Комментарии

IRP Описание
IRP_MJ_CREATE Как правило, эта подпрограмма используется мини-дисками, которые хотят инициализировать контекст и ресурсы, связанные с закреплением. Мини-диск указывает адрес этой подпрограммы в элементе Create структуры KSPIN_DISPATCH . Эта подпрограмма вызывается при создании контакта. В момент, когда вызывается эта подпрограмма, объект файла имеет связанный контекст, и заголовок объекта KS выделен. Как правило, эта функция предоставляется мини-дисками, которые хотят инициализировать контекст и ресурсы, связанные с закреплением. Мьютекс элемента управления фильтром удерживается в этой функции. Функция будет вызываться в IRQL = PASSIVE_LEVEL. Эта подпрограмма является необязательной. Если подпрограмма выполнена успешно, операция создания гарантированно будет успешной. Возврат STATUS_SUCCESS или STATUS_PENDING. Если мини-накопитель возвращает STATUS_PENDING, AVStream не завершит IRP_MJ_CREATE сразу. Однако перед возвращением STATUS_PENDING мини-диск должен вызвать IoMarkIrpPending. После завершения обработки создания мини-driver должен задать код состояния IRP, а затем вызвать KsCompletePendingRequest.
IRP_MJ_CLOSE Мини-диск указывает адрес этой подпрограммы в элементе Close структуры KSPIN_DISPATCH . В точке вызова подпрограммы все зарегистрированные события в контакте были освобождены, но в противном случае объект остается неизменным. Мьютекс элемента управления фильтром удерживается в этой функции. Дополнительные сведения о мьютексах см. в разделе Мьютексы в AVStream. Эта подпрограмма является необязательной.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть ks.h (включая Ks.h)
IRQL PASSIVE_LEVEL (см. раздел "Примечания")

См. также раздел

IoMarkIrpPending

KSPIN_DISPATCH

KsCompletePendingRequest