Función PcInitializeAdapterDriver (portcls.h)

La función PcInitializeAdapterDriver enlaza un controlador de adaptador al controlador del sistema PortCls. Los controladores y controladores IRP para la adición y eliminación de dispositivos se instalan en el objeto de controlador. Los controladores de adaptadores que necesitan enlazarse a más de un controlador de clase no deben llamar a esta función.

Sintaxis

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

Parámetros

[in] DriverObject

Puntero al objeto de controlador, que es una estructura del sistema de tipo DRIVER_OBJECT. Este puntero se pasa como parámetro a la función DriverEntry del adaptador.

[in] RegistryPathName

Especifica el nombre de la ruta de acceso del Registro que se va a pasar como parámetro a la función DriverEntry del adaptador.

[in] AddDevice

Puntero a la función AddDevice del adaptador. Se trata de un puntero de tipo PDRIVER_ADD_DEVICE, que se define en ntddk.h para que sea:

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

Valor devuelto

PcInitializeAdapterDriver devuelve STATUS_SUCCESS si la llamada se realizó correctamente. De lo contrario, devuelve un código de error adecuado.

Comentarios

El controlador AddDevice proporcionado en la llamada a esta función debe llamar a PcAddAdapterDevice. Para obtener más información, consulte Secuencia de inicio.

La función PcInitializeAdapterDriver carga punteros a controladores para los siguientes IRP en el objeto de controlador:

  • 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 usa sus propios controladores internos para create, PNP, POWER y SYSTEM_CONTROL IRP anteriores. Usa los controladores KS predeterminados para los otros siete IRP.

Un controlador de adaptador que sobrescribe uno o varios de los punteros anteriores con un puntero a su propio controlador IRP puede llamar a PcDispatchIrp desde su rutina de controlador para reenviar IRP a PortCls. Para obtener un ejemplo de código, consulta el controlador de audio de ejemplo SB16 en microsoft Windows Driver Kit (WDK).

Requisitos

Requisito Value
Cliente mínimo compatible El controlador del sistema PortCls implementa la función PcInitializeAdapterDriver en Microsoft Windows 98/Me y en los sistemas operativos Windows 2000 y versiones posteriores.
Plataforma de destino Universal
Encabezado portcls.h (incluir Portcls.h)
Library Portcls.lib
IRQL PASSIVE_LEVEL

Consulte también

AddDevice

DRIVER_OBJECT

DriverEntry

PcAddAdapterDevice

PcDispatchIrp