PFNKSPINIRP 回调函数 (ks.h)

执行引脚上的活动并接收以下 IRP 时,将调用 AVStream 微型驱动程序的例程:

语法

PFNKSPINIRP Pfnkspinirp;

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

参数

[in] Pin

指向刚刚创建的 KSPIN 的指针。

[in] Irp

指向 Pin 的 IRP 的指针。

返回值

如果例程成功,则保证操作成功。 返回STATUS_SUCCESS或STATUS_PENDING。

注解

IRP 说明
IRP_MJ_CREATE 通常,此例程由想要初始化与引脚关联的上下文和资源的微型驱动程序使用。 微型驱动程序在其KSPIN_DISPATCH结构的 Create 成员中指定此例程的地址。 创建引脚时会调用此例程。 在调用此例程时,文件对象具有关联的上下文,并且已分配 KS 对象标头。 通常,此函数将由要初始化与固定关联的上下文和资源的微型驱动程序提供。 在此函数中,将保留筛选器控件互斥体。 将在 IRQL = PASSIVE_LEVEL 调用函数。 此例程是可选的。 如果例程成功,则创建操作将保证成功。 返回STATUS_SUCCESS或STATUS_PENDING。 如果微型驱动程序返回STATUS_PENDING,AVStream 不会立即完成 IRP_MJ_CREATE 。 但是,在返回STATUS_PENDING之前,微型驱动程序必须调用 IoMarkIrpPending。 创建处理完成后,微型驱动程序必须设置 IRP 的状态代码,然后调用 KsCompletePendingRequest
IRP_MJ_CLOSE 微型驱动程序在其KSPIN_DISPATCH结构的 Close 成员中指定此例程的地址。 在调用例程时,引脚上的任何已注册事件都已释放,但对象在其他方面保持不变。 在此函数中,将保留筛选器控件互斥体。 有关互斥的详细信息,请参阅 AVStream 中的互斥体。 此例程是可选的。

要求

要求
目标平台 桌面
标头 ks.h (包括 Ks.h)
IRQL PASSIVE_LEVEL (请参阅备注部分)

另请参阅

IoMarkIrpPending

KSPIN_DISPATCH

KsCompletePendingRequest