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


функция 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

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

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

CM_REENUMERATE_SYNCHRONOUS

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

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

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

Комментарии

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

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

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

Требования

   
Минимальная версия клиента Доступно в Microsoft Windows 2000 и более поздних версиях Windows.
Целевая платформа Персональный компьютер
Верхняя часть cfgmgr32.h (включая Cfgmgr32.h)
Библиотека Cfgmgr32.lib
DLL Cfgmgr32.dll

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

CM_Get_Child

CM_Reenumerate_DevNode_Ex

IRP_MN_SURPRISE_REMOVAL