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 関数へのポインター。 これは、次のように ntddk.h で定義されるPDRIVER_ADD_DEVICE型のポインターです。

  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 関数を実装します。
対象プラットフォーム ユニバーサル
Header portcls.h (Portcls.h を含む)
Library Portcls.lib
IRQL PASSIVE_LEVEL

こちらもご覧ください

AddDevice

DRIVER_OBJECT

DriverEntry

PcAddAdapterDevice

PcDispatchIrp