Функция 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
Драйвер адаптера, который перезаписывает один или несколько приведенных выше указателей указателем на собственный обработчик IRP, может вызывать PcDispatchIrp из подпрограммы обработчика, чтобы перенаправить IRP в PortCls. Пример кода см. в примере аудиодрайвера SB16 в комплекте драйверов Microsoft Windows (WDK).
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Системный драйвер PortCls реализует функцию PcInitializeAdapterDriver в Microsoft Windows 98/Me, а также в Операционных системах Windows 2000 и более поздних версий. |
Целевая платформа | Универсальное |
Верхняя часть | portcls.h (включая Portcls.h) |
Библиотека | Portcls.lib |
IRQL | PASSIVE_LEVEL |