[Windows 8 および Windows Server 2012 以降、この関数は非推奨になりました。 代わりに CM_Reenumerate_DevNode を使用してください。]
CM_Reenumerate_DevNode_Ex関数は、指定されたデバイス ノードとそのすべての子によって識別されるデバイスを列挙します。
構文
CMAPI CONFIGRET CM_Reenumerate_DevNode_Ex(
[in] DEVINST dnDevInst,
[in] ULONG ulFlags,
[in, optional] HMACHINE hMachine
);
パラメーター
[in] dnDevInst
hMachine によって提供されるマシン ハンドルにバインドされている呼び出し元が指定デバイス インスタンス ハンドル。
[in] ulFlags
再び再開する方法を指定する呼び出し元が指定したフラグ。 このパラメーターは、次のフラグの組み合わせに設定できます。
CM_REENUMERATE_ASYNCHRONOUS
再開は非同期的に行う必要があります。 この関数の呼び出しは、PnP マネージャーが再開要求を受信した直後に返されます。 このフラグが設定されている場合は、CM_REENUMERATE_SYNCHRONOUS フラグも設定しないでください。
CM_REENUMERATE_NORMAL
再再開が同期的に行われる既定の再再開動作を指定します。 このフラグは現在、CM_REENUMERATE_SYNCHRONOUSと同等です。
CM_REENUMERATE_RETRY_INSTALLATION
プラグ アンド プレイが、検出されたが構成されていない、または再インストールが必要とマークされている、またはインストールを完了する必要がある、指定されたサブツリーにデバイスをインストールする別の試行を行う必要があることを指定します。 このフラグは、CM_REENUMERATE_SYNCHRONOUS フラグまたは CM_REENUMERATE_ASYNCHRONOUS フラグと共に設定できます。
このフラグは、PnP マネージャーがこのようなデバイスのインストールを実行するようにユーザーに求めるメッセージを表示する可能性があるため、細心の注意を払って使用する必要があります。 現時点では、デバイス マネージャーやハードウェア ウィザードなどのコンポーネントのみがこのフラグを使用して、既に検出されているが現在インストールされていない可能性があるデバイスのインストールをユーザーが再試行できるようにします。
CM_REENUMERATE_SYNCHRONOUS
再開は同期的に行う必要があります。 この関数の呼び出しは、指定されたデバイスのサブツリー内のすべてのデバイスに再送信要求が送信され、それらの要求がデバイス スタックによって完了したときに返されます。 これは、これらのデバイスのデバイス スタック内のドライバーがバスを再スキャンし、更新プログラムを報告したことを保証するものではありません。 また、報告された新しいデバイスが起動状態であることを保証するものではありません。 このフラグが設定されている場合は、CM_REENUMERATE_ASYNCHRONOUS フラグも設定しないでください。 このフラグは、機能的にはCM_REENUMERATE_NORMALと同等です。
[in, optional] hMachine
呼び出し元が指定したデバイス インスタンス ハンドルがバインドされている、呼び出し元が指定したマシン ハンドル。
戻り値
操作が成功した場合、関数はCR_SUCCESSを返します。 それ以外の場合は、Cfgmgr32.hで定義されているCR_プレフィックス付きのエラー コードのいずれかを返します。
注釈
指定したデバイス ノードがハードウェアまたはソフトウェア バス デバイスを表す場合、PnP マネージャーはデバイスのドライバーに対して子の一覧を照会し、以前に構成されていない子デバイスの構成と起動を試みます。 PnP マネージャーは、存在しなくなったデバイスの突然の削除も開始します ( IRP_MN_SURPRISE_REMOVAL参照)。 ただし、ドライバーは、再再開要求の非同期の PnP マネージャーに報告しているバスの関係を更新することを選択できます。そのため、新しいデバイスの外観と、存在しなくなったデバイスの削除は、再再開操作が完了しても完了しない可能性があります。
この関数の呼び出し元には SeLoadDriverPrivilege が必要です。 (特権については、Microsoft Windows SDK のドキュメントで説明されています)。
ローカル コンピューターまたはリモート コンピューターにバインドされているデバイス インスタンス ハンドルの使用については、CM_Get_Child_Exを参照してください。
リモート コンピューターにアクセスする機能は、Windows 8 および Windows Server 2012 以降のオペレーティング システムで削除されているため、これらのバージョンの Windows で実行している場合はリモート コンピューターにアクセスできません。
要求事項
| 要件 | 価値 |
|---|---|
| サポートされる最小クライアント | Microsoft Windows 2000 以降のバージョンの Windows で使用できます。 |
| ターゲット プラットフォーム の |
デスクトップ |
| ヘッダー | cfgmgr32.h (Cfgmgr32.h を含む) |
| 図書館 | Cfgmgr32.lib |
| DLL | Cfgmgr32.dll |