PcInitializeAdapterDriver-Funktion (portcls.h)

Die PcInitializeAdapterDriver-Funktion bindet einen Adaptertreiber an den PortCls-Systemtreiber. IRP-Handler und Handler für das Hinzufügen und Entfernen von Geräten werden im Treiberobjekt installiert. Adaptertreiber, die an mehrere Klassentreiber binden müssen, sollten diese Funktion nicht aufrufen.

Syntax

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

Parameter

[in] DriverObject

Zeiger auf das Treiberobjekt, das eine Systemstruktur vom Typ DRIVER_OBJECT ist. Dieser Zeiger wird als Parameter an die DriverEntry-Funktion des Adapters übergeben.

[in] RegistryPathName

Gibt den Registrierungspfadnamen an, der als Parameter an die DriverEntry-Funktion des Adapters übergeben werden soll.

[in] AddDevice

Zeiger auf die AddDevice-Funktion des Adapters. Dies ist ein Zeiger vom Typ PDRIVER_ADD_DEVICE, der in ntddk.h definiert ist, um folgendes zu sein:

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

Rückgabewert

PcInitializeAdapterDriver gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich war. Andernfalls wird ein entsprechender Fehlercode zurückgegeben.

Bemerkungen

Der im Aufruf dieser Funktion bereitgestellte AddDevice-Handler sollte pcAddAdapterDevice aufrufen. Weitere Informationen finden Sie unter Startsequenz.

Die PcInitializeAdapterDriver-Funktion lädt Zeiger auf Handler für die folgenden IRPs in das Treiberobjekt:

  • 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 verwendet eigene interne Handler für die oben genannten CREATE-, PNP-, POWER- und SYSTEM_CONTROL IRPs. Es verwendet die Standard-KS-Handler für die anderen sieben IRPs.

Ein Adaptertreiber, der einen oder mehrere der oben genannten Zeiger mit einem Zeiger auf einen eigenen IRP-Handler überschreibt, kann PcDispatchIrp aus seiner Handlerroutine aufrufen, um das IRP an PortCls weiterzuleiten. Ein Codebeispiel finden Sie unter dem SB16-Beispielaudiotreiber im Microsoft Windows Driver Kit (WDK).

Anforderungen

   
Unterstützte Mindestversion (Client) Der PortCls-Systemtreiber implementiert die PcInitializeAdapterDriver-Funktion in Microsoft Windows 98/Me und in Windows 2000 und höher.
Zielplattform Universell
Header portcls.h (include Portcls.h)
Bibliothek Portcls.lib
IRQL PASSIVE_LEVEL

Weitere Informationen

AddDevice

DRIVER_OBJECT

DriverEntry

PcAddAdapterDevice

PcDispatchIrp