Функция 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. Этот указатель передается в качестве параметра в функцию driverEnt ry адаптера.

[in] RegistryPathName

Указывает имя пути реестра, которое необходимо передать в качестве параметра в функцию driverEntry адаптера.

[in] AddDevice

Указатель на функцию AddDev ice адаптера. Это указатель типа 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 загружает указатели на обработчики для следующих irPs в объект драйвера:

  • 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 выше. В нем используются обработчики KS по умолчанию для других семи irPs.

Драйвер адаптера, который перезаписывает один или несколько указателей выше с указателем на собственный обработчик IRP, может вызывать PcDispatchIrp из подпрограммы обработчика, чтобы перенаправить IRP в PortCls. Пример кода см. в примере звукового драйвера SB16 в комплекте драйверов Microsoft Windows (WDK).

Требования

Требование Ценность
минимальные поддерживаемые клиентские Системный драйвер PortCls реализует функцию PcInitializeAdapterDriver в Microsoft Windows 98/Me и в Windows 2000 и более поздних операционных системах.
целевая платформа Всеобщий
заголовка portcls.h (include Portcls.h)
библиотеки Portcls.lib
IRQL PASSIVE_LEVEL

См. также

AddDevice

DRIVER_OBJECT

DriverEntry

PcAddAdapterDevice

PcDispatchIrp