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


функция 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). Однако водители могут изменить отношения шины, которые они сообщают диспетчеру PnP асинхронно запроса повторной обработки, поэтому внешний вид новых устройств и удаление устройств, которые больше не присутствуют, могут не быть завершены после завершения операции повторной обработки.

Вызывающие функции должны иметь SeLoadDriverPrivilege. (Привилегии описаны в документации по пакету SDK для Microsoft Windows.)

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

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

Требования

Требование Ценность
Минимальный поддерживаемый клиент Доступно в Microsoft Windows 2000 и более поздних версиях Windows.
целевая платформа Рабочий стол
Заголовок cfgmgr32.h (include Cfgmgr32.h)
Библиотека Cfgmgr32.lib
Библиотека dll Cfgmgr32.dll

См. также

CM_Get_Child_Ex

CM_Reenumerate_DevNode