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


Функция RmRegisterResources (restartmanager.h)

Регистрирует ресурсы в сеансе диспетчера перезапуска. Диспетчер перезапуска использует список ресурсов, зарегистрированных в сеансе, чтобы определить, какие приложения и службы необходимо завершить работу и перезапустить. Ресурсы можно определить по именам файлов, коротким именам служб или RM_UNIQUE_PROCESS структурам, описывающим запущенные приложения. Функция RmRegisterResources может использоваться основным или дополнительным установщиком.

Синтаксис

DWORD RmRegisterResources(
  [in]           DWORD                dwSessionHandle,
  [in]           UINT                 nFiles,
  [in, optional] LPCWSTR []           rgsFileNames,
  [in]           UINT                 nApplications,
  [in, optional] RM_UNIQUE_PROCESS [] rgApplications,
  [in]           UINT                 nServices,
  [in, optional] LPCWSTR []           rgsServiceNames
);

Параметры

[in] dwSessionHandle

Дескриптор существующего сеанса диспетчера перезапуска.

[in] nFiles

Количество зарегистрированных файлов.

[in, optional] rgsFileNames

Массив строк с полными путями к именам файлов со значением NULL. Этот параметр может иметь значение NULL , если nFiles равно 0.

[in] nApplications

Количество зарегистрированных процессов.

[in, optional] rgApplications

Массив RM_UNIQUE_PROCESS структур. Этот параметр может иметь значение NULL, если значение nApplications равно 0.

[in] nServices

Количество зарегистрированных служб.

[in, optional] rgsServiceNames

Массив строк, заканчивающихся пустым значением, коротких имен служб. Этот параметр может иметь значение NULL, если nServices равно 0.

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

Это самая последняя полученная ошибка. Функция может возвращать один из кодов системных ошибок , определенных в Winerror.h.

Значение Значение
ERROR_SUCCESS
0
Указанные ресурсы зарегистрированы.
ERROR_SEM_TIMEOUT
121
Функции Диспетчер перезапуска не удалось получить мьютекс записи реестра в отведенное время. Рекомендуется перезапустить систему, так как дальнейшее использование диспетчера перезапуска, скорее всего, завершится ошибкой.
ERROR_BAD_ARGUMENTS
160
Один или несколько аргументов неверны. Это значение ошибки возвращается функцией Restart Manager, если указатель NULL или 0 передается в параметре, требующем ненулевое и ненулевое значение.
ERROR_WRITE_FAULT
29
Операции не удалось выполнить чтение или запись в реестр.
ERROR_OUTOFMEMORY
14
Не удалось завершить операцию диспетчера перезапуска, так как недостаточно памяти.
ERROR_INVALID_HANDLE
6
Сеанс диспетчера перезапуска для предоставленного дескриптора не существует.

Комментарии

Каждый вызов функции RmRegisterResources выполняет относительно дорогостоящие операции записи. Не вызывайте эту функцию один раз для каждого файла, а группируйте связанные файлы в компоненты и регистрируйте их вместе.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header restartmanager.h
Библиотека Rstrtmgr.lib
DLL Rstrtmgr.dll