[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 ファイルを指定します。INF ファイルは、デバイスの 1 つがコンピューターに初めて接続されるときにオペレーティング システムがドライバーをインストールするために使用します。 システムが INF ファイルとハードウェア ID を使用する方法の詳細については、「セットアップでドライバーを選択する方法」を参照してください。
ドライバーの EvtDriverDeviceAdd コールバック関数は、通常、次の初期化操作の少なくとも一部を実行します。
-
デバイスを表すフレームワーク デバイス オブジェクト を作成します。
-
ドライバーが I/O 要求を受信できるように、 I/O キューを作成します。
-
他のドライバーが使用できるドライバー定義インターフェイス 作成します。
- Windows Management Instrumentation (WMI) サポート 初期化します。
-
ドライバーがデバイスの割り込みを処理する場合は、割り込みオブジェクトを作成します。
-
ドライバーが DMA 操作を処理する場合、ダイレクト メモリ アクセス (DMA) トランザクションを有効にします。
ドライバーの EvtDriverDeviceAdd コールバック関数は、デバイス オブジェクトを作成しますが、STATUS_SUCCESSを返さない場合、フレームワークはデバイス オブジェクトとその子デバイスを削除します。
関数ドライバーの EvtDriverDeviceAdd コールバック関数がSTATUS_SUCCESSを返さない場合、I/O マネージャーはデバイスのデバイス スタックを構築しません。
フィルター ドライバーの EvtDriverDeviceAdd コールバック関数がSTATUS_SUCCESSを返さない場合、フレームワークは戻り値をSTATUS_SUCCESSに変換し、I/O マネージャーはフィルター ドライバーなしでデバイス スタックをビルドします。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | 普遍 |
最小 KMDF バージョン | 1.0 |
UMDF の最小バージョン を する | 2.0 |
ヘッダー | wdfdriver.h (Wdf.h を含む) |
IRQL | PASSIVE_LEVEL |