CM_Reenumerate_DevNode関数 (cfgmgr32.h)

CM_Reenumerate_DevNode関数は、指定されたデバイス ノードとそのすべての子によって識別されるデバイスを列挙します。

構文

CMAPI CONFIGRET CM_Reenumerate_DevNode(
  [in] DEVINST dnDevInst,
  [in] ULONG   ulFlags
);

パラメーター

[in] dnDevInst

ローカル コンピューターにバインドされている呼び出し元から提供されたデバイス インスタンス ハンドル。

[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と同等です。

戻り値

操作が成功した場合、関数は CR_SUCCESSを返します。 それ以外の場合は、 Cfgmgr32.h で定義されているCR_プレフィックス付きのエラー コードのいずれかを返します。

解説

指定したデバイス ノードがハードウェアまたはソフトウェア バス デバイスを表す場合、PnP マネージャーはデバイスのドライバーに対して子の一覧を照会し、以前に構成されていない子デバイスの構成と起動を試みます。 PnP マネージャーは、存在しなくなったデバイスの突然の削除も開始します ( 「IRP_MN_SURPRISE_REMOVAL」を参照)。

この関数の呼び出し元には SeLoadDriverPrivilege が必要です。 (特権については、Microsoft Windows SDKドキュメントを参照してください)。

ローカル コンピューターにバインドされているデバイス インスタンス ハンドルの使用については、「 CM_Get_Child」を参照してください。

要件

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

関連項目

CM_Get_Child

CM_Reenumerate_DevNode_Ex

IRP_MN_SURPRISE_REMOVAL