Compartilhar via


Função PcInitializeAdapterDriver (portcls.h)

A função PcInitializeAdapterDriver associa um driver de adaptador ao driver do sistema PortCls. Manipuladores e manipuladores IRP para adição e remoção do dispositivo são instalados no objeto de driver. Os drivers do adaptador que precisam ser associados a mais de um driver de classe não devem chamar essa função.

Sintaxe

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

Parâmetros

[in] DriverObject

Ponteiro para o objeto driver, que é uma estrutura do sistema do tipo DRIVER_OBJECT. Esse ponteiro é passado como um parâmetro para a função DriverEntry do adaptador.

[in] RegistryPathName

Especifica o nome do caminho do registro que deve ser passado como um parâmetro para a função DriverEntry do adaptador.

[in] AddDevice

Ponteiro para a função AddDevice do adaptador. Esse é um ponteiro do tipo PDRIVER_ADD_DEVICE, que é definido em ntddk.h como sendo:

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

Valor de retorno

PcInitializeAdapterDriver retornará STATUS_SUCCESS se a chamada tiver sido bem-sucedida. Caso contrário, ele retornará um código de erro apropriado.

Observações

O manipulador de AddDevice fornecido na chamada para essa função deve chamar PcAddAdapterDevice. Para obter mais informações, consulte de sequência de inicialização.

A função PcInitializeAdapterDriver carrega ponteiros para manipuladores para os seguintes IRPs no objeto de driver:

  • 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
O PortCls usa seus próprios manipuladores internos para os IRPs CREATE, PNP, POWER e SYSTEM_CONTROL acima. Ele usa os manipuladores de KS padrão para os outros sete IRPs.

Um driver de adaptador que substitui um ou mais ponteiros acima com um ponteiro para seu próprio manipulador IRP pode chamar PcDispatchIrp de dentro de sua rotina de manipulador para encaminhar o IRP para PortCls. Para obter um exemplo de código, consulte o driver de áudio de exemplo SB16 no WDK (Microsoft Windows Driver Kit).

Requisitos

Requisito Valor
de cliente com suporte mínimo O driver do sistema PortCls implementa a função PcInitializeAdapterDriver no Microsoft Windows 98/Me e no Windows 2000 e em sistemas operacionais posteriores.
da Plataforma de Destino Universal
cabeçalho portcls.h (inclua Portcls.h)
biblioteca Portcls.lib
IRQL PASSIVE_LEVEL

Consulte também

AddDevice

DRIVER_OBJECT

DriverEntry

PcAddAdapterDevice

PcDispatchIrp