PcInitializeAdapterDriver 函数 (portcls.h)

PcInitializeAdapterDriver 函数将适配器驱动程序绑定到 PortCls 系统驱动程序。 设备添加和删除的 IRP 处理程序和处理程序安装在驱动程序对象中。 需要绑定到多个类驱动程序的适配器驱动程序不应调用此函数。

语法

PORTCLASSAPI NTSTATUS PcInitializeAdapterDriver(
  [in] PDRIVER_OBJECT     DriverObject,
  [in] PUNICODE_STRING    RegistryPathName,
  [in] PDRIVER_ADD_DEVICE AddDevice
);

参数

[in] DriverObject

指向驱动程序对象的指针,该对象是 DRIVER_OBJECT类型的系统结构。 此指针作为参数传递给适配器的 DriverEntry 函数。

[in] RegistryPathName

指定要作为参数传递给适配器的 DriverEntry 函数的注册表路径名称。

[in] AddDevice

指向适配器 AddDevice 函数的指针。 这是PDRIVER_ADD_DEVICE类型的指针,在 ntddk.h 中定义为:

  NTSTATUS
    (*PDRIVER_ADD_DEVICE)(
      IN struct _DRIVER_OBJECT  *DriverObject,
      IN struct _DEVICE_OBJECT  *PhysicalDeviceObject
        );

返回值

如果调用成功,PcInitializeAdapterDriver 返回STATUS_SUCCESS。 否则,它将返回适当的错误代码。

言论

调用此函数时提供的 AddDevice 处理程序应调用 PcAddAdapterDevice。 有关详细信息,请参阅 启动序列

PcInitializeAdapterDriver 函数将以下 IRP 的指针加载到驱动程序对象中:

  • IRP_MJ_CLOSE
  • IRP_MJ_CREATE
  • IRP_MJ_DEVICE_CONTROL
  • IRP_MJ_FLUSH_BUFFERS
  • IRP_MJ_PNP
  • IRP_MJ_POWER
  • IRP_MJ_QUERY_SECURITY
  • IRP_MJ_READ
  • IRP_MJ_SET_SECURITY
  • IRP_MJ_SYSTEM_CONTROL
  • IRP_MJ_WRITE
PortCls 为上述 CREATE、PNP、POWER 和 SYSTEM_CONTROL IRP 使用自己的内部处理程序。 它使用其他七个 IRP 的默认 KS 处理程序。

使用指向其自己的 IRP 处理程序的指针覆盖上述一个或多个指针的适配器驱动程序可以从其处理程序例程中调用 PcDispatchIrp,以便将 IRP 转发到 PortCls。 有关代码示例,请参阅 Microsoft Windows 驱动程序工具包(WDK)中的 SB16 示例音频驱动程序。

要求

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

另请参阅

AddDevice

DRIVER_OBJECT

DriverEntry

PcAddAdapterDevice

PcDispatchIrp