次の方法で共有


EVT_WDF_DRIVER_DEVICE_ADD コールバック関数 (wdfdriver.h)

[KMDF と UMDF に適用]

ドライバーの EvtDriverDeviceAdd イベント コールバック関数は、プラグ アンド プレイ (PnP) マネージャーがデバイスの存在を報告すると、デバイスの初期化操作を実行します。

構文

EVT_WDF_DRIVER_DEVICE_ADD EvtWdfDriverDeviceAdd;

NTSTATUS EvtWdfDriverDeviceAdd(
  [in]      WDFDRIVER Driver,
  [in, out] PWDFDEVICE_INIT DeviceInit
)
{...}

パラメーター

[in] Driver

ドライバーを表すフレームワーク ドライバー オブジェクトへのハンドル。

[in, out] DeviceInit

フレームワークによって割り当てられた WDFDEVICE_INIT 構造体へのポインター。

戻り値

EvtDriverDeviceAdd コールバック関数は、操作が成功した場合にSTATUS_SUCCESSを返す必要があります。 それ以外の場合、このコールバック関数は Ntstatus.h で定義されているエラー状態値のいずれかを返す必要があります。 詳細については、「解説」を参照してください。

注釈

PnP デバイスをサポートする各フレームワーク ベースのドライバーは、 EvtDriverDeviceAdd コールバック関数を提供する必要があります。 ドライバーは、WdfDriverCreate を呼び出す前に、コールバック関数のアドレスをWDF_DRIVER_CONFIG構造体に配置する必要があります。

このフレームワークは、バス ドライバーが、ドライバーがサポートするハードウェア ID と一致するハードウェア識別子 (ID) を持つデバイスを検出した後、ドライバーの EvtDriverDeviceAdd コールバック関数を呼び出します。 ドライバーがサポートするハードウェア ID を指定するには、INF ファイルを指定します。このファイルは、デバイスの 1 つがコンピューターに初めて接続されるときにオペレーティング システムがドライバーをインストールするために使用します。 システムで INF ファイルとハードウェア ID を使用する方法の詳細については、「セットアップで ドライバーを選択する方法」を参照してください。

ドライバーの EvtDriverDeviceAdd コールバック関数は、通常、次の初期化操作の少なくとも一部を実行します。

一部のドライバー (特にフィルター ドライバー) では、一部のデバイスのデバイス オブジェクトが作成されない場合があります。 EvtDriverDeviceAdd コールバック関数がデバイス オブジェクトを作成しない場合でも、エラーが発生しない限り、STATUS_SUCCESSを返す必要があります。

ドライバーの EvtDriverDeviceAdd コールバック関数がデバイス オブジェクトを作成するが、STATUS_SUCCESSを返さない場合、フレームワークはデバイス オブジェクトとその子デバイスを削除します。

関数ドライバーの EvtDriverDeviceAdd コールバック関数がSTATUS_SUCCESSを返さない場合、I/O マネージャーはデバイスのデバイス スタックを構築しません。

フィルター ドライバーの EvtDriverDeviceAdd コールバック関数がSTATUS_SUCCESSを返さない場合、フレームワークは戻り値をSTATUS_SUCCESSに変換し、I/O マネージャーはフィルター ドライバーなしでデバイス スタックをビルドします。

要件

要件
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.0
最小 UMDF バージョン 2.0
Header wdfdriver.h (Wdf.h を含む)
IRQL PASSIVE_LEVEL

こちらもご覧ください

WDFDEVICE_INIT

WDF_DRIVER_CONFIG

WdfDriverCreate