DiUninstallDriverA 関数 (newdev.h)
DiUninstallDriver 関数は、別の一致するドライバー パッケージを使用してそれらのデバイスをインストールすることによって、インストールされている任意のデバイスからドライバー パッケージを削除します(使用可能な場合は null ドライバー)。他の一致するドライバー パッケージがない場合は null ドライバー。 その後、指定したドライバー パッケージがドライバー ストアから削除されます。
構文
BOOL DiUninstallDriverA(
[in, optional] HWND hwndParent,
[in] LPCSTR InfPath,
[in] DWORD Flags,
[out, optional] PBOOL NeedReboot
);
パラメーター
[in, optional] hwndParent
ドライバーのアンインストールに関連付けられているユーザー インターフェイス コンポーネントを表示するために DiUninstallDriver が使用する必要がある最上位ウィンドウへのハンドル。 このパラメーターは省略可能であり、 NULL に設定できます。
[in] InfPath
ドライバー パッケージの INF ファイルの完全修飾パスを提供する NULL で終わる文字列へのポインター。
[in] Flags
0 個以上のフラグを指定する DWORD 型の値: DIURFLAG_NO_REMOVE_INF。 通常、このフラグは 0 に設定する必要があります。
このフラグが 0 の場合、 DiUninstallDriver は、別の一致するドライバー パッケージを使用してそれらのデバイスをインストールすることによって、インストールされているデバイスからドライバー パッケージを削除します (使用可能な場合は null ドライバー)。他に一致するドライバー パッケージがない場合は null ドライバー。 ただし、このフラグが DIURFLAG_NO_REMOVE_INF に設定されている場合、 DiUninstallDriver は、インストールされているデバイスからドライバー パッケージを削除しますが、ドライバー ストアからドライバー パッケージを削除しません。
Windows がデバイスのドライバー パッケージを選択する方法については、「 Windows でドライバーを選択する方法」を参照してください。
[out, optional] NeedReboot
アンインストールを完了するためにシステムの再起動が必要かどうかを示すために DiUninstallDriver が設定する BOOL 型の値へのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。 パラメーターを指定し、アンインストールを完了するためにシステムの再起動が必要な場合、 DiUninstallDriver は値を TRUE に設定します。 この場合、呼び出し元はユーザーにシステムの再起動を求める必要があります。 このパラメーターを指定し、アンインストールを完了するためにシステムの再起動が必要ない場合、 DiUninstallDriver は値を FALSE に設定 します。 パラメーターが NULL で、アンインストールを完了するためにシステムの再起動が必要な場合、 DiUninstallDriver はシステム再起動ダイアログ ボックスを表示します。 このパラメーターの詳細については、次の 「解説 」セクションを参照してください。
戻り値
DiUninstallDriver は、関数がインストールされているデバイスからドライバー パッケージを正常に削除し、システムのドライバー ストアから正常に削除された場合に TRUE を返します。 ドライバー パッケージがドライバー ストアから正常にアンインストールされない場合、 DiUninstallDriver は FALSE を 返し、 GetLastError を呼び出すことでログに記録されたエラーを取得できます。 GetLastError が返す可能性がある一般的なエラー値の一部は次のとおりです。
リターン コード | 説明 |
---|---|
|
呼び出し元には管理者特権がありません。 既定では、Windows では、ドライバー ストアからドライバー パッケージをアンインストールするために、呼び出し元に管理者特権が必要です。 |
|
指定した INF ファイルのパスが存在しません。 |
|
Flags に指定された値が 0 またはDIURFLAG_NO_REMOVE_INFと等しくありません。 |
|
呼び出し元のアプリケーションは、64 ビット環境で実行しようとしている 32 ビット アプリケーションです。これは許可されていません。 詳細については、「 64 ビット システムへのデバイスのインストール」を参照してください。 |
注釈
一般に、アンインストール アプリケーションは NeedReboot を NULL に設定して、削除を完了するために再起動が必要な場合にシステムの再起動をユーザーに求める DiUninstallDriver を指示する必要があります。 アプリケーションでは、次の場合にのみ NeedReboot ポインターを指定する必要があります。
- アンインストールを完了するには、アプリケーションで DiUninstallDriver を複数回呼び出す必要があります。 この場合、アプリケーションは、DiUninstallDriver への呼び出しによって TRUENeedReboot 値が返されるかどうかを記録し、その場合は、DiUninstallDriver の最後の呼び出しが返された後にシステムを再起動するようにユーザーに求める必要があります。
- システムの再起動を行う前に、 DiUninstallDriver を呼び出す以外の必要な操作を実行する必要があります。 システムの再起動が必要な場合、アプリケーションは必要な操作を完了し、ユーザーにシステムの再起動を求めるメッセージを表示する必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 10 バージョン 1703 以降のバージョンの Windows で使用できます。 |
対象プラットフォーム | デスクトップ |
Header | newdev.h (Newdev.h を含む) |
Library | Newdev.lib |