Поделиться через


Функция CM_Reenumerate_DevNode_Ex (cfgmgr32.h)

[Начиная с 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

Указывает, что Plug and Play должна предпринять еще одну попытку установить все устройства в указанном поддереве, которые были обнаружены, но еще не настроены, помечены как нуждающиеся в переустановке или для которых установка должна быть завершена. Этот флаг можно задать вместе с флагом CM_REENUMERATE_SYNCHRONOUS или флагом CM_REENUMERATE_ASYNCHRONOUS.

Этот флаг следует использовать с особой осторожностью, так как он может привести к тому, что диспетчер PnP предложит пользователю выполнить установку таких устройств. В настоящее время этот флаг используется только в таких компонентах, как диспетчер устройств и мастер оборудования, чтобы разрешить пользователю повторить установку устройств, которые, возможно, уже были обнаружены, но не установлены в настоящее время.

CM_REENUMERATE_SYNCHRONOUS

Переумерация должна происходить синхронно. Вызов этой функции возвращается, когда все устройства в указанном поддереве были повторно усечены. Если этот флаг установлен, флаг CM_REENUMERATE_ASYNCHRONOUS также не должен быть установлен. В настоящее время этот флаг эквивалентен CM_REENUMERATE_NORMAL.

[in, optional] hMachine

Дескриптор компьютера, предоставленный вызывающим абонентом, к которому привязан дескриптор экземпляра устройства, предоставленный вызывающим абонентом.

Примечание Использование этой функции для доступа к удаленным компьютерам не поддерживается, начиная с Windows 8 и Windows Server 2012, так как эта функция была удалена.
 

Возвращаемое значение

Если операция выполнена успешно, функция возвращает CR_SUCCESS. В противном случае возвращается один из кодов ошибок с префиксом CR_, определенных в Cfgmgr32.h.

Комментарии

Если указанный узел устройства представляет устройство аппаратной или программной шины, диспетчер PnP запрашивает у драйверов устройства список дочерних устройств, а затем пытается настроить и запустить все дочерние устройства, которые ранее не были настроены. Диспетчер PnP также инициирует неожиданное удаление устройств, которых больше нет (см . IRP_MN_SURPRISE_REMOVAL).

У вызывающих объектов этой функции должен быть 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

См. также раздел

CM_Get_Child_Ex

CM_Reenumerate_DevNode