PcNewMiniport 函数 (portcls.h)

PcNewMiniport 函数创建一个系统提供的微型端口驱动程序的实例,这些微型端口驱动程序内置于 PortCls 系统驱动程序中,portcls.sys。 类 ID 指定要实例化哪些微型端口驱动程序。 驱动程序支持派生自 IMiniport 的微型端口接口。

语法

PORTCLASSAPI NTSTATUS PcNewMiniport(
  [out] PMINIPORT *OutMiniPort,
  [in]  REFCLSID  ClassID
);

参数

[out] OutMiniPort

此函数创建的微型端口驱动程序对象的输出指针。 此参数指向调用方分配的指针变量,函数将引用输出到新创建的 IMiniport 对象。 此对象是由 ClassId 参数指定的微型端口驱动程序的实例。 为此参数指定有效的非 NULL 指针值。

[in] ClassID

指定要请求的微型端口接口。 有关更多信息,请参见下面的“备注”部分。

返回值

如果调用成功,PcNewMiniport 将返回STATUS_SUCCESS。 否则,它将返回相应的错误代码。

注解

MPU-401 UART 和 OPL3 合成器的系统提供的微型端口驱动程序可以通过调用 PcNewMiniport 进行实例化。这些是随 portcls.sys 系统驱动程序一起提供的内置微型端口驱动程序。 作为供应商适配器驱动程序一部分的微型端口驱动程序不是以这种方式创建的。

ClassId 参数可以设置为下表中的 GUID 之一。

GUID System-Supplied 驱动程序
CLSID_MiniportDriverDMusUART 适用于 MPU-401 合成器的 DMusUART 微型端口驱动程序。 公开 IMiniportDMus 接口,以便与 IPortDMus 端口对象一起使用。
CLSID_MiniportDriverDMusUARTCapture 适用于 MPU-401 捕获设备的 DMusUARTCapture 微型端口驱动程序。 公开 IMiniportDMus 接口,以便与 IPortDMus 端口对象一起使用。
CLSID_MiniportDriverFmSynth FM 合成器设备的 FmSynth 微型端口驱动程序。 公开 IMiniportMidi 接口,以便与 IPortMidi 端口对象一起使用。
CLSID_MiniportDriverFmSynthWithVol 与前面的条目相同,只不过驱动程序还支持卷节点。
CLSID_MiniportDriverUart 适用于 MPU-401 合成器的 UART 微型端口驱动程序。 公开 IMiniportMidi 接口,以便与 IPortMidi 端口对象一起使用。 已过时。
 

上表中的前两个 GUID 在头文件 dmusicks.h 中定义;最后三个在 portcls.h 中定义。

DMusUART 微型端口驱动程序使用纯 MPU-401 MIDI 接口将 MIDI 数据输出到合成器设备。 为了产生声音,此设备需要附加一个外部 MIDI 声音模块。

DMusUARTCapture 微型端口驱动程序使用纯 MPU-401 接口从捕获设备输入 MIDI 数据。

FMSynth 微型端口驱动程序将 MIDI 数据输出到实现 OPL3 样式 FM 合成的合成器设备。 CLSID_MiniportDriverFmSynth GUID 适用于大多数 FM 合成器设备。 但是,在 FM 合成器之后未提供硬件音量控制的设备(例如 Windows 音响系统)应改用 CLSID_MiniportDriverFmSynthWithVol GUID。 在 Windows Server SP1 及更高版本中,FMSynth 微型端口驱动程序仅在 32 位版本的操作系统中可用。

UART 微型端口驱动程序已过时。 新的适配器驱动程序代码应使用 DMusUART 微型端口驱动程序,该驱动程序取代 UART 并实现其功能的超集。

Microsoft 提供了 DMusUART 和 FMSynth 微型端口驱动程序的源代码,这些源代码可以作为硬件供应商的起点,他们可能需要扩展这些驱动程序以管理其他设备功能。 在 Windows 驱动程序工具包 (WDK) 中查找示例音频驱动程序。

有关为 子设备 创建端口和微型端口驱动程序的详细信息,请参阅子设备创建。

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

要求

要求
最低受支持的客户端 PortCls 系统驱动程序在 Microsoft Windows 98/Me 和 Windows 2000 及更高版本的操作系统中实现 PcNewMiniport 函数。
目标平台 通用
标头 portcls.h (包括 Portcls.h)
Library Portcls.lib
IRQL PASSIVE_LEVEL

另请参阅

IMiniport

IMiniportDMus

IMiniportMidi

IPortDMus

IPortMidi