private static string GetMonitorDisplayName(DisplayConfigPathInfo path) { var displayConfigTargetDeviceName = new DisplayConfigTargetDeviceName { header = new DisplayConfigDeviceInfoHeader { adapterId = path.targetInfo.adapterId, id = path.targetInfo.id, size = Marshal.SizeOf( typeof(DisplayConfigTargetDeviceName)), type = DisplayConfigDeviceInfoType.GetTargetName } }; var successStatus = Wrapper.DisplayConfigGetDeviceInfo(ref displayConfigTargetDeviceName); if (successStatus != StatusCode.Success) { throw new Exception($"DisplayConfigGetDeviceInfo() failed. Status: {successStatus}"); } var displayName = displayConfigTargetDeviceName.monitorFriendlyDeviceName; return(displayName); }
private static DisplayConfigTargetDeviceName[] GetDisplayConfigs() { var error = NativeMethods.GetDisplayConfigBufferSizes(QueryDeviceConfigFlags.QdcOnlyActivePaths, out var pathInfoElementsCount, out var modeInfoElementsCount); if (error != 0) { throw Log.ErrorAndCreateException <Win32Exception>($"Function {nameof(NativeMethods.GetDisplayConfigBufferSizes)} returns error code '{error}'"); } var displayConfigs = new List <DisplayConfigTargetDeviceName>(); var displayConfigPathInfos = new DisplayConfigPathInfo[pathInfoElementsCount]; var displayConfigModeInfos = new DisplayConfigModeInfo[modeInfoElementsCount]; error = NativeMethods.QueryDisplayConfig(QueryDeviceConfigFlags.QdcOnlyActivePaths, ref pathInfoElementsCount, displayConfigPathInfos, ref modeInfoElementsCount, displayConfigModeInfos, IntPtr.Zero); if (error != 0) { throw Log.ErrorAndCreateException <Win32Exception>($"Function {nameof(NativeMethods.QueryDisplayConfig)} returns error code '{error}'"); } foreach (var pathInfo in displayConfigPathInfos) { var adapterName = new DisplayConfigAdapterName(pathInfo.TargetInfo.AdapterId, DisplayConfig.DeviceInfoType.DisplayConfigDeviceInfoGetAdapterName); var targetDeviceName = new DisplayConfigTargetDeviceName() { Header = DisplayConfigDeviceInfoHeader.Initialize(pathInfo.TargetInfo.AdapterId, pathInfo.TargetInfo.Id, DisplayConfig.DeviceInfoType.DisplayConfigDeviceInfoGetTargetName, (uint)Marshal.SizeOf <DisplayConfigTargetDeviceName>()) }; error = (int)NativeMethods.DisplayConfigGetDeviceInfo(ref targetDeviceName); try { if (error != 0) { throw Log.ErrorAndCreateException <Win32Exception>($"Function {nameof(NativeMethods.DisplayConfigGetDeviceInfo)} returns error code '{error}'"); } displayConfigs.Add(targetDeviceName); } catch (Win32Exception ex) { Log.Error(ex); } } return(displayConfigs.ToArray()); }
private static StatusCode GetDisplayConfigTargetDeviceName(DisplayConfigModeInfo targetModeInfo, out DisplayConfigTargetDeviceName displayConfigTargetDeviceName) { displayConfigTargetDeviceName = new DisplayConfigTargetDeviceName { header = new DisplayConfigDeviceInfoHeader { adapterId = targetModeInfo.adapterId, id = targetModeInfo.id, size = Marshal.SizeOf(typeof(DisplayConfigTargetDeviceName)), type = DisplayConfigDeviceInfoType.GetTargetName, } }; return(Win32Api.DisplayConfigGetDeviceInfo(ref displayConfigTargetDeviceName)); }
private static string MonitorFriendlyName(Luid adapterId, uint targetId) { var deviceName = new DisplayConfigTargetDeviceName { Header = { Size = (uint)Marshal.SizeOf(typeof(DisplayConfigTargetDeviceName)), AdapterId = adapterId, Id = targetId, Type = DisplayConfigDeviceInfoType.GetTargetName } }; var error = DisplayConfigGetDeviceInfo(ref deviceName); if (error != ErrorSuccess) { throw new Win32Exception(error); } return(deviceName.MonitorFriendlyDeviceName); }
public static extern Win32Status DisplayConfigGetDeviceInfo(ref DisplayConfigTargetDeviceName deviceName);
private static extern int DisplayConfigGetDeviceInfo(ref DisplayConfigTargetDeviceName deviceName);