IMiniportMidi::Init 方法 (portcls.h)

方法 Init 初始化 MIDI 微型端口对象。

语法

NTSTATUS Init(
  [in]  PUNKNOWN      UnknownAdapter,
  [in]  PRESOURCELIST ResourceList,
  [in]  PPORTMIDI     Port,
  [out] PSERVICEGROUP *ServiceGroup
);

参数

[in] UnknownAdapter

指向正在初始化其微型端口对象的适配器对象的 IUnknown 接口的指针。 此参数是可选的,可以指定为 NULL。 有关更多信息,请参见下面的“备注”部分。

[in] ResourceList

指向初始化期间要提供给微型端口驱动程序的资源列表对象的 IResourceList 接口的指针。 将此引用传递给微型端口驱动程序后,端口驱动程序可以自由检查资源列表的内容,但不会修改此列表的内容。 有关更多信息,请参见下面的“备注”部分。

[in] Port

指向绑定到此微型端口对象的 IPortMidi 对象的指针。 调用方为此参数指定有效的非 NULL 指针值。

[out] ServiceGroup

服务组的输出指针。 此参数指向调用方分配的指针变量,该方法在其中写入指向微型端口驱动程序服务组对象的 IServiceGroup 接口的指针。 这是正在为中断通知注册的服务组。 调用方为此参数指定有效的非 NULL 指针值。

返回值

Init 如果调用成功,则返回STATUS_SUCCESS。 否则,该方法将返回相应的错误代码。

注解

UnknownAdapter 参数是可选的:

  • 如果 UnknownAdapter 为非 NULL,该方法 Init 将查询 UnknownAdapter 对象的 IInterruptSync 接口。
  • 如果 UnknownAdapterNULL,该方法 Init 将调用 PcNewInterruptSync 以创建新的 IInterruptSync 对象。 在这种情况下, ResourceList 指向的资源列表提供新的 IInterruptSync 对象使用的中断资源。
在任一情况下, Init 方法和对 IInterruptSync 对象调用 RegisterServiceRoutine 方法,以便将微型端口驱动程序的中断服务例程 (ISR) 添加到中断同步例程列表中。 当适配器驱动程序稍后释放端口对象时,端口驱动程序会释放其对 IInterruptSync 对象的引用。

UnknownAdapterResourceList 参数与适配器驱动程序之前作为参数传递给 IPortMidi 对象的 Init 方法的指针值相同, (请参阅 IPort::Init) 。

UnknownAdapterResourceListPortServiceGroup 参数遵循 COM 对象的引用计数约定

要求

要求
目标平台 通用
标头 portcls.h (包括 Portcls.h)
IRQL PASSIVE_LEVEL

另请参阅

IInterruptSync

IMiniportMidi

IPort::Init

IPortMidi

IResourceList

IServiceGroup

PcNewInterruptSync