DiShowUpdateDevice 関数 (newdev.h)

DiShowUpdateDevice 関数は、指定されたデバイスのハードウェア更新ウィザードを表示します。

構文

BOOL DiShowUpdateDevice(
  [in, optional]  HWND             hwndParent,
  [in]            HDEVINFO         DeviceInfoSet,
  [in]            PSP_DEVINFO_DATA DeviceInfoData,
  [in]            DWORD            Flags,
  [out, optional] PBOOL            NeedReboot
);

パラメーター

[in, optional] hwndParent

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

[in] DeviceInfoSet

ハードウェア更新ウィザードを表示するデバイスを表すデバイス情報要素を含むデバイス情報 セット へのハンドル。

[in] DeviceInfoData

ハードウェア更新ウィザードを表示するデバイスを表す SP_DEVINFO_DATA 構造体へのポインター。

[in] Flags

このパラメーターは 0 に設定する必要があります。

[out, optional] NeedReboot

ドライバーの更新を完了するためにシステムの再起動が必要かどうかを示すために DiShowUpdateDevice が設定する BOOL 型の値へのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。 パラメーターを指定し、ドライバーの更新を完了するためにシステムの再起動が必要な場合、 DiShowUpdateDevice は値を TRUE に設定します。 この場合、呼び出し元はユーザーにシステムの再起動を求めるメッセージを表示する必要があります。 このパラメーターを指定し、インストールを完了するためにシステムの再起動が必要ない場合、 DiShowUpdateDevice は値を FALSE に設定 します。 パラメーターが NULL で、ドライバーの更新を完了するためにシステムの再起動が必要な場合、 DiShowUpdateDevice はシステムの再起動ダイアログ ボックスを表示します。 このパラメーターの詳細については、次の 「解説 」セクションを参照してください。

戻り値

ハードウェア更新ウィザードが指定したデバイスのドライバーを正常に更新した場合、DiShowUpdateDeviceTRUE を返します。 それ以外の場合、 DiShowUpdateDeviceFALSE を 返し、 GetLastError を呼び出すことでログに記録されたエラーを取得できます。 GetLastError が返す可能性がある一般的なエラー値の一部は次のとおりです。

リターン コード 説明
ERROR_ACCESS_DENIED
呼び出し元には管理者特権がありません。 既定では、Windows では、 ドライバー パッケージを更新するために、呼び出し元のプロセスに管理者特権が必要です。
ERROR_CANCELLED
ユーザーがハードウェア更新ウィザードを取り消しました。
ERROR_IN_WOW64
呼び出し元のアプリケーションは、64 ビット環境で実行しようとしている 32 ビット アプリケーションです。これは許可されていません。 詳細については、「 64 ビット システムへのデバイスのインストール」を参照してください。
ERROR_INVALID_FLAGS
Flags に指定された値が 0 と等しくありません。

注釈

DiShowUpdateDevice は、指定されたデバイス インスタンスのハードウェア更新ウィザードを表示します。 ハードウェア更新ウィザードを使用してデバイス ドライバーを更新する方法については、「ヘルプとサポート センター」を参照してください。

一般に、インストール アプリケーションは NeedRebootを NULL に設定して、ハードウェア更新プログラムを完了するために再起動が必要な場合にシステムが自動的にシステムの再起動を開始するようにする必要があります。 アプリケーションでは、次の場合にのみ NeedReboot ポインターを指定する必要があります。

  • ハードウェア更新プログラムを完了するには、インストール アプリケーションで DiShowUpdateDevice を複数回呼び出す必要があります。 この場合、アプリケーションは、DiShowUpdateDevice の呼び出しによって TRUENeedReboot 値が返されるかどうかを記録する必要があります。その場合は、DiShowUpdateDevice の最後の呼び出しが返された後にシステムを再起動するようにユーザーに求めます。
  • アプリケーションは、システムの再起動を行う前に、 DiShowUpdateDevice を呼び出す以外の必要な操作を実行する必要があります。 システムの再起動が必要な場合、アプリケーションは必要な操作を完了し、ユーザーにシステムの再起動を求めるメッセージを表示する必要があります。
ハードウェア更新ウィザードを呼び出す代わりにデバイスのドライバーをロールバックするには、 DiRollbackDriver を呼び出します。

ハードウェア更新ウィザードを呼び出す代わりにデバイスの新しいドライバーをインストールするには、 DiInstallDriver または UpdateDriverForPlugAndPlayDevices を呼び出します。

要件

要件
サポートされている最小のクライアント Windows Vista 以降のバージョンの Windows で使用できます。
対象プラットフォーム デスクトップ
Header newdev.h (Newdev.h を含む)
Library Newdev.lib
[DLL] Newdev.dll

こちらもご覧ください

DiInstallDriver

DiRollbackDriver

UpdateDriverForPlugAndPlayDevices