次の方法で共有


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
PortCls は、上記の CREATE、PNP、POWER、および SYSTEM_CONTROL IRP に独自の内部ハンドラーを使用します。 他の 7 つの IRP に対して既定の KS ハンドラーを使用します。

上の 1 つ以上のポインターを独自の IRP ハンドラーへのポインターで上書きするアダプター ドライバーは、IRP を PortCls に転送するために、ハンドラー ルーチン内から PcDispatchIrp 呼び出すことができます。 コード例については、Microsoft Windows Driver Kit (WDK) の SB16 サンプル オーディオ ドライバーを参照してください。

必要条件

要件 価値
サポートされる最小クライアント PortCls システム ドライバーは、Microsoft Windows 98/Me および Windows 2000 以降のオペレーティング システムで PcInitializeAdapterDriver 関数を実装します。
ターゲット プラットフォーム 万国
ヘッダー portcls.h (Portcls.h を含む)
ライブラリ Portcls.lib
IRQL PASSIVE_LEVEL

関連項目

AddDevice

DRIVER_OBJECT

DriverEntry

PcAddAdapterDevice

PcDispatchIrp