DiUninstallDriverW 関数 (newdev.h)

DiUninstallDriver 関数は、別の一致するドライバー パッケージを持つデバイスをインストールすることによって、インストールされているデバイスからドライバー パッケージを削除します (使用可能な場合は null ドライバー)。他の一致するドライバー パッケージが使用できない場合は null ドライバー。 その後、指定したドライバー パッケージが ドライバー ストアから削除されます。

構文

BOOL DiUninstallDriverW(
  [in, optional]  HWND    hwndParent,
  [in]            LPCWSTR InfPath,
  [in]            DWORD   Flags,
  [out, optional] PBOOL   NeedReboot
);

パラメーター

[in, optional] hwndParent

ドライバーのアンインストールに関連付けられているユーザー インターフェイス コンポーネントを表示するために、DiUninstallDriver を する最上位ウィンドウへのハンドル。 このパラメーターは省略可能であり、NULL設定できます。

[in] InfPath

ドライバー パッケージの INF ファイルの完全修飾パスを提供する NULL で終わる文字列へのポインター。

[in] Flags

0 個または 1 つ以上のフラグを指定する 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 返される一般的なエラー値の一部を次に示します。

リターン コード 形容
ERROR_ACCESS_DENIED
呼び出し元には管理者特権がありません。 既定では、Windows では、ドライバー ストアのから ドライバー パッケージ をアンインストールするために、呼び出し元に管理者特権が必要です。
ERROR_FILE_NOT_FOUND
指定した INF ファイルのパスが存在しません。
ERROR_INVALID_FLAGS
Flags に指定された値が 0 またはDIURFLAG_NO_REMOVE_INFと等しくありません。
ERROR_IN_WOW64
呼び出し元のアプリケーションは、許可されていない 64 ビット環境で実行しようとしている 32 ビット アプリケーションです。 詳細については、「64 ビット システムへのデバイスのインストール」を参照してください。

備考

一般に、アンインストール アプリケーション NeedReboot を NULL 設定して、DiUninstallDriver 、削除を完了するために再起動が必要な場合にシステムの再起動をユーザーに指示する必要があります。 アプリケーションは、次の場合にのみ、NeedReboot ポインターを指定する必要があります。

  • アンインストールを完了するには、アプリケーション DiUninstallDriver を数回呼び出す必要があります。 この場合、アプリケーションは、DiUninstallDriver の呼び出しによって TRUENeedReboot 値が返されるかどうかを記録する必要があります。その場合は、diUninstallDriver を最後に呼び出した後にシステム 再起動するようにユーザーに求めます。
  • アプリケーションは、システムの再起動を行う前に、DiUninstallDriver呼び出す以外の必要な操作を実行する必要があります。 システムの再起動が必要な場合、アプリケーションは必要な操作を完了し、ユーザーにシステムの再起動を求めるメッセージを表示する必要があります。

必要条件

要件 価値
サポートされる最小クライアント Windows 10 バージョン 1703 以降のバージョンの Windows で使用できます。
ターゲット プラットフォーム の デスクトップ
ヘッダー newdev.h (Newdev.h を含む)
ライブラリ Newdev.lib

関連項目

DiUninstallDevice の