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 adaptador 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 driver, 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, vea 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 los IRP CREATE, PNP, POWER y SYSTEM_CONTROL 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, vea el controlador de audio de ejemplo SB16 en el Kit de controladores de Microsoft Windows (WDK).

Requisitos

   
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
Header portcls.h (incluya Portcls.h)
Library Portcls.lib
IRQL PASSIVE_LEVEL

Consulte también

AddDevice

DRIVER_OBJECT

DriverEntry

PcAddAdapterDevice

PcDispatchIrp