DiInstallDriverA 関数 (newdev.h)
DiInstallDriver 関数は、ドライバー ストア にドライバーをプレインストールし、ドライバーがサポートするシステムに存在するデバイスにドライバーをインストールします。
構文
BOOL DiInstallDriverA(
[in, optional] HWND hwndParent,
[in] LPCSTR InfPath,
[in] DWORD Flags,
[out, optional] PBOOL NeedReboot
);
パラメーター
[in, optional] hwndParent
DiInstallDriver
[in] InfPath
ドライバー パッケージの INF ファイルの完全修飾パスを提供する NULL で終わる文字列へのポインター。
[in] Flags
ここで説明するように、0 個または 1 つ以上のフラグの組み合わせを指定する DWORD 型の値 (Flags は通常、0 に設定されます)。
フラグ が 0 の場合、DiInstallDriver は、デバイスに現在インストールされているドライバーよりも、ドライバーがデバイスに適している場合にのみ、指定されたドライバーをデバイスにインストールします。 Windows がデバイスのドライバーを選択する方法については、「Windows でドライバーを選択する方法
フラグ にDIIRFLAG_FORCE_INFが含まれている場合、DiInstallDriver は、ドライバーがデバイスに現在インストールされているドライバーよりもデバイスに適しているかどうかに関係なく、指定されたドライバーを一致するデバイスにインストールします。 DIIRFLAG_INSTALL_AS_SETも指定されている場合、DIIRFLAG_FORCE_INFは無視されます。
[out, optional] NeedReboot
インストールを完了するためにシステムの再起動が必要かどうかを示すために設定 DiInstallDriver
戻り値
DiInstallDriver は、関数が指定した ドライバー パッケージ を ドライバー ストアに正常にプレインストールした場合、TRUE を返します。
DiInstallDriver は、関数がシステム内の 1 つ以上のデバイスにドライバーを正常にインストールした場合、TRUE も返します。 ドライバー パッケージがドライバー ストアに正常にインストールされていない場合、
リターン コード | 形容 |
---|---|
|
呼び出し元には管理者特権がありません。 既定では、Windows では、ドライバー ストアに ドライバー パッケージ をプレインストールするために、呼び出し元に管理者特権が必要です。 |
|
指定した INF ファイルのパスが存在しません。 |
|
Flags に指定された値が 0 またはDIIRFLAG_FORCE_INFと等しくありません。 |
|
呼び出し元のアプリケーションは、許可されていない 64 ビット環境で実行しようとしている 32 ビット アプリケーションです。 詳細については、「64 ビット システムへのデバイスのインストール」を参照してください。 |
備考
DiInstallDriver
- ドライバー ストアに ドライバー パッケージ をプレインストールします。 同じドライバー パッケージのインスタンスが既にドライバー ストアにプレインストールされている場合、DiInstallDriver 最初にそのインスタンスを削除してから、ドライバー パッケージの新しいインスタンスをドライバー ストアに追加します。
- システムに存在するデバイスを列挙します。
- フラグ が 0 に等しい場合は、指定したドライバーがデバイスに現在インストールされているドライバーよりも適切に一致する場合にのみ、デバイスにドライバーをインストールします。
- フラグ がDIIRFLAG_FORCE_INFと等しい場合は、ドライバー パッケージの が、デバイスに現在インストールされているドライバーよりもデバイスに適しているかどうかに関係なく、デバイスにドライバーをインストールします。
-
インストールを完了するには、アプリケーション DiInstallDriver を数回呼び出す必要があります。 この場合、アプリケーションは、
DiInstallDriver の呼び出しによってTRUE NeedReboot 値が返されるかどうかを記録する必要があります。その場合は、diInstallDriver が返最後の呼び出しの後にシステムを再起動するようにユーザーに求めます。 -
アプリケーションは、システムの再起動を行う前に、DiInstallDriver
呼び出す以外の必要な操作を実行する必要があります。 システムの再起動が必要な場合、アプリケーションは必要な操作を完了し、ユーザーにシステムの再起動を求めるメッセージを表示する必要があります。 - アプリケーションはクラス インストーラーです。その場合、クラス インストーラーは、デバイスのSP_DEVINSTALL_PARAMS構造体の Flags メンバーにDI_NEEDREBOOT フラグを設定する必要があります。
手記
newdev.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして DiInstallDriver を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Vista 以降のバージョンの Windows で使用できます。 |
ターゲット プラットフォーム の |
デスクトップ |
ヘッダー | newdev.h (Newdev.h を含む) |
ライブラリ | Newdev.lib |