PFNKSPINIRP 回调函数 (ks.h)

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

语法

PFNKSPINIRP Pfnkspinirp;

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

参数

[in] Pin

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

[in] Irp

指向 固定的 IRP 的指针。

返回值

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

言论

IRP 描述
IRP_MJ_CREATE 通常,此例程由希望初始化与引脚关联的上下文和资源的微型驱动程序使用。 微型驱动程序在 创建其 KSPIN_DISPATCH 结构 成员中指定此例程的地址。 创建引脚时会调用此例程。 在调用此例程时,文件对象具有关联的上下文,并且已分配 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