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


Функция GetCurrentHwProfileA (winbase.h)

Извлекает сведения о текущем профиле оборудования для локального компьютера.

Синтаксис

BOOL GetCurrentHwProfileA(
  [out] LPHW_PROFILE_INFOA lpHwProfileInfo
);

Параметры

[out] lpHwProfileInfo

Указатель на структуру HW_PROFILE_INFO, которая получает сведения о текущем профиле оборудования.

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

Если функция выполнена успешно, возвращаемое значение является ненулевое значение.

Если функция завершается ошибкой, возвращаемое значение равно нулю. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.

Замечания

Функция GetCurrentHwProfile извлекает отображаемое имя и строку ГЛОБАЛЬНО уникального идентификатора (GUID) для профиля оборудования. Функция также извлекает сообщаемое состояние док-станции для переносимых компьютеров с док-станциями.

Система создает GUID для каждого профиля оборудования и сохраняет его в виде строки в реестре. Вы можете использовать GetCurrentHwProfile для получения строки GUID для использования в качестве подраздела реестра в разделе параметров конфигурации приложения в HKEY_CURRENT_USER. Это позволяет хранить параметры каждого пользователя для каждого профиля оборудования. Например, приложение панели управления Colors может использовать вложенный ключ для хранения цветов каждого пользователя для различных профилей оборудования, таких как профили для закрепленных и отключаемых состояний. Приложения, использующие эту функцию, могут проверять текущий профиль оборудования при запуске и соответствующим образом обновлять их параметры.

Приложения также могут обновлять свои параметры при изменении системного сообщения устройства, например DBT_CONFIGCHANGED, указывает на то, что профиль оборудования изменился.

Чтобы скомпилировать приложение, использующее эту функцию, определите макрос _WIN32_WINNT как 0x0400 или более поздней версии. Дополнительные сведения см. в разделе Использование заголовков Windows.

Примеры

#include <windows.h>
#include <stdio.h>
#include <tchar.h>

void main(void) 
{
   HW_PROFILE_INFO   HwProfInfo;
   if (!GetCurrentHwProfile(&HwProfInfo)) 
   {
      _tprintf(TEXT("GetCurrentHwProfile failed with error %lx\n"), 
                 GetLastError());
      return;
   }
   _tprintf(TEXT("DockInfo = %d\n"), HwProfInfo.dwDockInfo);
   _tprintf(TEXT("Profile Guid = %s\n"), HwProfInfo.szHwProfileGuid);
   _tprintf(TEXT("Friendly Name = %s\n"), HwProfInfo.szHwProfileName);
}

Заметка

Заголовок winbase.h определяет GetCurrentHwProfile как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка winbase.h (включая Windows.h)
библиотеки Advapi32.lib
DLL Advapi32.dll
набор API ext-ms-win-advapi32-hwprof-l1-1-0 (представлено в Windows 10 версии 10.0.10240)

См. также

DBT_CONFIGCHANGED

HW_PROFILE_INFO

системные информационные функции