ReactOS 0.4.16-dev-2207-geb15453
display.c
Go to the documentation of this file.
1/*
2 * PROJECT: ReactX Diagnosis Application
3 * LICENSE: LGPL - See COPYING in the top level directory
4 * FILE: base/applications/dxdiag/display.c
5 * PURPOSE: ReactX diagnosis display page
6 * COPYRIGHT: Copyright 2008 Johannes Anderwald
7 *
8 */
9
10#include "precomp.h"
11
12#include <d3d9.h>
13
14static const GUID DISPLAY_GUID = { 0x67685559, 0x3106, 0x11D0, { 0xB9, 0x71, 0x00, 0xAA, 0x00, 0x34, 0x2F, 0x9F } };
15
16BOOL
17GetFileModifyTime(LPCWSTR pFullPath, WCHAR * szTime, int szTimeSize)
18{
20 FILETIME AccessTime;
21 SYSTEMTIME SysTime, LocalTime;
23
24 hFile = CreateFileW(pFullPath, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
25 if (!hFile)
26 return FALSE;
27
28 if (!GetFileTime(hFile, NULL, NULL, &AccessTime))
29 {
31 return FALSE;
32 }
34
35 if (!FileTimeToSystemTime(&AccessTime, &SysTime))
36 return FALSE;
37
38 if (!SystemTimeToTzSpecificLocalTime(NULL, &SysTime, &LocalTime))
39 return FALSE;
40
42 szTime[Length-1] = L' ';
44}
45
46
47
48static UINT WINAPI
51 IN UINT_PTR Param1,
52 IN UINT_PTR Param2)
53{
56 LPCWSTR pFullPath = (LPCWSTR)Param1;
57 WCHAR szVer[60];
58 LRESULT Length, fLength;
59 HWND * hDlgCtrls = (HWND *)Context;
60
61 if (wcsstr(pFullPath, L"\\DRIVERS\\"))
62 {
63 /* exclude files from drivers dir to have failsafe file version/date information */
64 return NO_ERROR;
65 }
66
67 pFile = wcsrchr(pFullPath, L'\\');
68 if (!pFile)
69 return NO_ERROR;
70
71 pFile++;
72 fLength = wcslen(pFile) + 1;
73
74 Length = SendMessageW(hDlgCtrls[0], WM_GETTEXTLENGTH, 0, 0) + 1;
75 pBuffer = HeapAlloc(GetProcessHeap(), 0, (Length + fLength) * sizeof(WCHAR));
76 if (!pBuffer)
77 return ERROR_OUTOFMEMORY;
78
80 if (Length)
81 {
82 pBuffer[Length++] = L',';
83 }
84 else
85 {
86 /* set file version */
87 if (GetFileVersion(pFullPath, szVer, sizeof(szVer)/sizeof(WCHAR)))
88 SendMessageW(hDlgCtrls[1], WM_SETTEXT, 0, (LPARAM)szVer);
89 /* set file time */
90 if (GetFileModifyTime(pFullPath, szVer, sizeof(szVer)/sizeof(WCHAR)))
91 SendMessageW(hDlgCtrls[2], WM_SETTEXT, 0, (LPARAM)szVer);
92 }
93
95 SendMessageW(hDlgCtrls[0], WM_SETTEXT, 0, (LPARAM)pBuffer);
97 return NO_ERROR;
98}
99
100VOID
102{
103 HSPFILEQ hQueue;
105 SP_DRVINFO_DATA DriverInfoData;
107
110 return;
111
112 DeviceInstallParams.FlagsEx |= (DI_FLAGSEX_INSTALLEDDRIVER | DI_FLAGSEX_ALLOWEXCLUDEDDRVS);
114 return;
115
117 return;
118
119 DriverInfoData.cbSize = sizeof(DriverInfoData);
120 if (!SetupDiEnumDriverInfoW(hList, pInfoData, SPDIT_CLASSDRIVER, 0, &DriverInfoData))
121 return;
122
123 DriverInfoData.cbSize = sizeof(DriverInfoData);
124 if (!SetupDiSetSelectedDriverW(hList, pInfoData, &DriverInfoData))
125 return;
126
127 hQueue = SetupOpenFileQueue();
128 if (hQueue == (HSPFILEQ)INVALID_HANDLE_VALUE)
129 return;
130
133 {
134 SetupCloseFileQueue(hQueue);
135 return;
136 }
137
138 DeviceInstallParams.FileQueue = hQueue;
140
142 {
143 SetupCloseFileQueue(hQueue);
144 return;
145 }
146
148 {
149 SetupCloseFileQueue(hQueue);
150 return;
151 }
152
153
154 /* enumerate the driver files */
156 SetupCloseFileQueue(hQueue);
157}
158
159static
160void
161DisplayPageSetDeviceDetails(HWND * hDlgCtrls, LPCGUID classGUID, LPGUID * deviceGUID)
162{
163 HDEVINFO hInfo;
164 DWORD dwIndex = 0;
165 SP_DEVINFO_DATA InfoData;
166 WCHAR szText[100];
167
168 /* create the setup list */
170 if (hInfo == INVALID_HANDLE_VALUE)
171 return;
172
173 do
174 {
175 ZeroMemory(&InfoData, sizeof(InfoData));
176 InfoData.cbSize = sizeof(InfoData);
177
178 if (SetupDiEnumDeviceInfo(hInfo, dwIndex, &InfoData))
179 {
180 /* set device name */
181 if (SetupDiGetDeviceRegistryPropertyW(hInfo, &InfoData, SPDRP_DEVICEDESC, NULL, (PBYTE)szText, sizeof(szText), NULL))
182 SendMessageW(hDlgCtrls[0], WM_SETTEXT, 0, (LPARAM)szText);
183
184 /* set the manufacturer name */
185 if (SetupDiGetDeviceRegistryPropertyW(hInfo, &InfoData, SPDRP_MFG, NULL, (PBYTE)szText, sizeof(szText), NULL))
186 SendMessageW(hDlgCtrls[1], WM_SETTEXT, 0, (LPARAM)szText);
187
188 /* FIXME
189 * we currently enumerate only the first adapter
190 */
191 EnumerateDrivers(&hDlgCtrls[2], hInfo, &InfoData);
192 break;
193 }
194
196 break;
197
198 dwIndex++;
199 }while(TRUE);
200
201 /* destroy the setup list */
203}
204
205
206static
207BOOL
209{
210 WCHAR szText[100];
211 WCHAR szFormat[30];
212 HKEY hKey;
213 HWND hDlgCtrls[5];
214 DWORD dwMemory;
215 DEVMODEW DevMode;
216 IDirect3D9 * ppObj = NULL;
218 HRESULT hResult;
219
220 szText[0] = L'\0';
221
222 /* fix wine */
223 //ppObj = Direct3DCreate9(D3D_SDK_VERSION);
224 if (ppObj)
225 {
226 hResult = IDirect3D9_GetAdapterIdentifier(ppObj, D3DADAPTER_DEFAULT , 2/*D3DENUM_WHQL_LEVEL*/, &Identifier);
227 if (hResult == D3D_OK)
228 {
229
230 if (Identifier.WHQLLevel)
231 {
232 /* adapter is WHQL certified */
233 LoadStringW(hInst, IDS_OPTION_YES, szText, sizeof(szText)/sizeof(WCHAR));
234 }
235 else
236 {
237 LoadStringW(hInst, IDS_NOT_APPLICABLE, szText, sizeof(szText)/sizeof(WCHAR));
238 }
239 }
240 IDirect3D9_Release(ppObj);
241 }
242 else
243 {
244 LoadStringW(hInst, IDS_NOT_APPLICABLE, szText, sizeof(szText)/sizeof(WCHAR));
245 }
246 szText[(sizeof(szText)/sizeof(WCHAR))-1] = L'\0';
248
249 if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, &pDispDevice->DeviceKey[18], 0, KEY_READ, &hKey) != ERROR_SUCCESS)
250 return FALSE;
251
252 if (GetRegValue(hKey, NULL, L"HardwareInformation.ChipType", REG_BINARY, szText, sizeof(szText)))
253 {
254 /* set chip type */
256 }
257
258 if (GetRegValue(hKey, NULL, L"HardwareInformation.DacType", REG_BINARY, szText, sizeof(szText)))
259 {
260 /* set DAC type */
262 }
263
264 if (GetRegValue(hKey, NULL, L"HardwareInformation.MemorySize", REG_BINARY, (LPWSTR)&dwMemory, sizeof(dwMemory)))
265 {
266 /* set chip memory size */
267 if (dwMemory > (1048576))
268 {
269 /* buggy ATI driver requires that */
270 dwMemory /= 1048576;
271 }
272 szFormat[0] = L'\0';
273 if (LoadStringW(hInst, IDS_FORMAT_ADAPTER_MEM, szFormat, sizeof(szFormat)/sizeof(WCHAR)))
274 szFormat[(sizeof(szFormat)/sizeof(WCHAR))-1] = L'\0';
275 wsprintfW(szText, szFormat, dwMemory);
277 }
278
279 /* retrieve current display mode */
280 DevMode.dmSize = sizeof(DEVMODEW);
281 if (EnumDisplaySettingsW(pDispDevice->DeviceName, ENUM_CURRENT_SETTINGS, &DevMode))
282 {
283 szFormat[0] = L'\0';
284 if (LoadStringW(hInst, IDS_FORMAT_ADAPTER_MODE, szFormat, sizeof(szFormat)/sizeof(WCHAR)))
285 szFormat[(sizeof(szFormat)/sizeof(WCHAR))-1] = L'\0';
286 wsprintfW(szText, szFormat, DevMode.dmPelsWidth, DevMode.dmPelsHeight, DevMode.dmBitsPerPel, DevMode.dmDisplayFrequency);
288 }
289
290 /* query attached monitor */
291 wcscpy(szText, pDispDevice->DeviceName);
292 ZeroMemory(pDispDevice, sizeof(DISPLAY_DEVICEW));
293 pDispDevice->cb = sizeof(DISPLAY_DEVICEW);
294 if (EnumDisplayDevicesW(szText, 0, pDispDevice, 0))
295 {
296 /* set monitor name */
298 }
299
300 hDlgCtrls[0] = GetDlgItem(hwndDlg, IDC_STATIC_ADAPTER_ID);
301 hDlgCtrls[1] = GetDlgItem(hwndDlg, IDC_STATIC_ADAPTER_VENDOR);
302 hDlgCtrls[2] = GetDlgItem(hwndDlg, IDC_STATIC_ADAPTER_DRIVER);
303 hDlgCtrls[3] = GetDlgItem(hwndDlg, IDC_STATIC_ADAPTER_VERSION);
304 hDlgCtrls[4] = GetDlgItem(hwndDlg, IDC_STATIC_ADAPTER_DATE);
305
306 DisplayPageSetDeviceDetails(hDlgCtrls, &GUID_DEVCLASS_DISPLAY, NULL);
307 return TRUE;
308}
309
311{
312 DISPLAY_DEVICEW DispDevice;
313 PDXDIAG_DISPLAY *pDisplayAdapters;
314 PDXDIAG_DISPLAY pDisplayAdapter;
315 HWND hwndDlg;
316 WCHAR szDisplay[20];
317 WCHAR szText[30];
318 DWORD dwOffset = 0;
319
320 while(TRUE)
321 {
322 ZeroMemory(&DispDevice, sizeof(DISPLAY_DEVICEW));
323 DispDevice.cb = sizeof(DISPLAY_DEVICEW);
324 if (!EnumDisplayDevicesW(NULL, pContext->NumDisplayAdapter + dwOffset, &DispDevice, 0))
325 return;
326
327 /* skip devices not attached to the desktop and mirror drivers */
329 {
330 dwOffset++;
331 continue;
332 }
333 if (pContext->NumDisplayAdapter)
334 pDisplayAdapters = HeapReAlloc(GetProcessHeap(), 0, pContext->DisplayAdapters, (pContext->NumDisplayAdapter + 1) * sizeof(PDXDIAG_DISPLAY));
335 else
336 pDisplayAdapters = HeapAlloc(GetProcessHeap(), 0, sizeof(PDXDIAG_DISPLAY));
337
338 if (!pDisplayAdapters)
339 break;
340
341 pDisplayAdapter = HeapAlloc(GetProcessHeap(), 0, sizeof(DXDIAG_DISPLAY));
342 if (!pDisplayAdapter)
343 break;
344
345 pContext->DisplayAdapters = pDisplayAdapters;
347 if (!hwndDlg)
348 break;
349
350 /* initialize the dialog */
351 InitializeDialog(hwndDlg, &DispDevice);
352
353 szDisplay[0] = L'\0';
354 LoadStringW(hInst, IDS_DISPLAY_DIALOG, szDisplay, sizeof(szDisplay)/sizeof(WCHAR));
355 szDisplay[(sizeof(szDisplay)/sizeof(WCHAR))-1] = L'\0';
356
357 wsprintfW (szText, L"%s %u", szDisplay, pContext->NumDisplayAdapter + 1);
359
360 pDisplayAdapter->guid = DISPLAY_GUID;
361 pDisplayAdapter->guid.Data1 += pContext->NumDisplayAdapter + dwOffset;
362 pDisplayAdapter->hDisplayWnd = hwndDlg;
363 pDisplayAdapters[pContext->NumDisplayAdapter] = pDisplayAdapter;
364 pContext->NumDisplayAdapter++;
365 }
366
367
368}
369
370
373{
374 RECT rect;
375 HWND hMainDialog;
377 switch (message)
378 {
379 case WM_INITDIALOG:
380 {
381 pDisplay = (PDXDIAG_DISPLAY) lParam;
382 SetWindowLongPtr(hDlg, DWLP_USER, (LONG_PTR)pDisplay);
384 return TRUE;
385 }
386 case WM_COMMAND:
387 {
388 switch(LOWORD(wParam))
389 {
392 hMainDialog = GetWindow(hDlg, GW_OWNER);
393 GetWindowRect(hMainDialog, &rect);
394 /* FIXME log result errors */
396 DDTests(&pDisplay->guid);
397 else if (IDC_BUTTON_TEST3D == LOWORD(wParam))
398 D3DTests(&pDisplay->guid);
399 SetWindowPos(hMainDialog, NULL, rect.left, rect.top, rect.right, rect.bottom, SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER);
400 break;
401 }
402 break;
403 }
404 }
405
406 return FALSE;
407}
@ Identifier
Definition: asmpp.cpp:95
static void DisplayPageSetDeviceDetails(HWND *hDlgCtrls, LPCGUID classGUID, LPGUID *deviceGUID)
Definition: display.c:161
VOID EnumerateDrivers(PVOID Context, HDEVINFO hList, PSP_DEVINFO_DATA pInfoData)
Definition: display.c:101
static BOOL InitializeDialog(HWND hwndDlg, PDISPLAY_DEVICEW pDispDevice)
Definition: display.c:208
INT_PTR CALLBACK DisplayPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
Definition: display.c:372
static UINT WINAPI DriverFilesCallback(IN PVOID Context, IN UINT Notification, IN UINT_PTR Param1, IN UINT_PTR Param2)
Definition: display.c:49
void InitializeDisplayAdapters(PDXDIAG_CONTEXT pContext)
Definition: display.c:310
static const GUID DISPLAY_GUID
Definition: display.c:14
BOOL GetFileModifyTime(LPCWSTR pFullPath, WCHAR *szTime, int szTimeSize)
Definition: display.c:17
BOOL GetFileVersion(LPCWSTR szAppName, WCHAR *szVer, DWORD szVerSize)
Definition: network.c:105
struct DXDIAG_DISPLAY * PDXDIAG_DISPLAY
BOOL GetRegValue(HKEY hBaseKey, LPWSTR SubKey, LPWSTR ValueName, DWORD Type, LPWSTR Result, DWORD Size)
Definition: system.c:15
#define IDS_FORMAT_ADAPTER_MEM
Definition: resource.h:150
#define IDS_OPTION_YES
Definition: resource.h:126
#define IDC_STATIC_ADAPTER_ID
Definition: resource.h:37
#define IDC_STATIC_ADAPTER_CHIP
Definition: resource.h:39
#define IDD_DISPLAY_DIALOG
Definition: resource.h:8
#define IDC_STATIC_ADAPTER_MODE
Definition: resource.h:42
#define IDC_STATIC_ADAPTER_DATE
Definition: resource.h:46
#define IDS_FORMAT_ADAPTER_MODE
Definition: resource.h:151
#define IDC_STATIC_ADAPTER_MONITOR
Definition: resource.h:43
#define IDC_STATIC_ADAPTER_VERSION
Definition: resource.h:45
#define IDC_BUTTON_TEST3D
Definition: resource.h:55
#define IDC_BUTTON_TESTDD
Definition: resource.h:54
#define IDC_STATIC_ADAPTER_DAC
Definition: resource.h:40
#define IDS_DISPLAY_DIALOG
Definition: resource.h:105
#define IDS_NOT_APPLICABLE
Definition: resource.h:125
#define IDC_STATIC_ADAPTER_DRIVER
Definition: resource.h:44
#define IDC_STATIC_ADAPTER_VENDOR
Definition: resource.h:38
#define IDC_TAB_CONTROL
Definition: resource.h:16
#define IDC_STATIC_ADAPTER_MEM
Definition: resource.h:41
#define IDC_STATIC_ADAPTER_LOGO
Definition: resource.h:47
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
#define IDirect3D9_GetAdapterIdentifier(p, a, b, c)
Definition: d3d9.h:224
#define IDirect3D9_Release(p)
Definition: d3d9.h:220
#define D3D_OK
Definition: d3d.h:106
VOID D3DTests(GUID *lpDevice)
Definition: d3dtest.c:73
#define NO_ERROR
Definition: dderror.h:5
VOID DDTests(GUID *lpDevice)
Definition: ddtest.c:70
#define ERROR_OUTOFMEMORY
Definition: deptool.c:13
#define ERROR_SUCCESS
Definition: deptool.c:10
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
Definition: reg.c:3333
#define CloseHandle
Definition: compat.h:739
#define GetProcessHeap()
Definition: compat.h:736
#define wcsrchr
Definition: compat.h:16
#define OPEN_EXISTING
Definition: compat.h:775
#define INVALID_HANDLE_VALUE
Definition: compat.h:731
#define HeapAlloc
Definition: compat.h:733
#define HeapReAlloc
Definition: compat.h:734
#define ERROR_NO_MORE_ITEMS
Definition: compat.h:105
#define GENERIC_READ
Definition: compat.h:135
#define HeapFree(x, y, z)
Definition: compat.h:735
#define CreateFileW
Definition: compat.h:741
#define CALLBACK
Definition: compat.h:35
BOOL WINAPI GetFileTime(IN HANDLE hFile, OUT LPFILETIME lpCreationTime OPTIONAL, OUT LPFILETIME lpLastAccessTime OPTIONAL, OUT LPFILETIME lpLastWriteTime OPTIONAL)
Definition: fileinfo.c:896
BOOL WINAPI FileTimeToSystemTime(IN CONST FILETIME *lpFileTime, OUT LPSYSTEMTIME lpSystemTime)
Definition: time.c:188
BOOL WINAPI SystemTimeToTzSpecificLocalTime(CONST TIME_ZONE_INFORMATION *lpTimeZoneInformation, CONST SYSTEMTIME *lpUniversalTime, LPSYSTEMTIME lpLocalTime)
Definition: timezone.c:377
INT WINAPI DECLSPEC_HOTPATCH LoadStringW(HINSTANCE instance, UINT resource_id, LPWSTR buffer, INT buflen)
Definition: string.c:1220
_ACRTIMP size_t __cdecl wcslen(const wchar_t *)
Definition: wcs.c:2983
_ACRTIMP wchar_t *__cdecl wcsstr(const wchar_t *, const wchar_t *)
Definition: wcs.c:2993
BOOL WINAPI SetupDiSetDeviceInstallParamsW(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData OPTIONAL, IN PSP_DEVINSTALL_PARAMS_W DeviceInstallParams)
Definition: devinst.c:4558
BOOL WINAPI SetupDiEnumDeviceInfo(HDEVINFO devinfo, DWORD index, PSP_DEVINFO_DATA info)
Definition: devinst.c:1787
BOOL WINAPI SetupDiGetDeviceInstallParamsW(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData OPTIONAL, OUT PSP_DEVINSTALL_PARAMS_W DeviceInstallParams)
Definition: devinst.c:4451
BOOL WINAPI SetupDiCallClassInstaller(DI_FUNCTION InstallFunction, HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData)
Definition: devinst.c:4024
BOOL WINAPI SetupDiGetDeviceRegistryPropertyW(HDEVINFO DeviceInfoSet, PSP_DEVINFO_DATA DeviceInfoData, DWORD Property, PDWORD PropertyRegDataType, PBYTE PropertyBuffer, DWORD PropertyBufferSize, PDWORD RequiredSize)
Definition: devinst.c:3224
HDEVINFO WINAPI SetupDiGetClassDevsW(CONST GUID *class, LPCWSTR enumstr, HWND parent, DWORD flags)
Definition: devinst.c:2292
BOOL WINAPI SetupDiDestroyDeviceInfoList(HDEVINFO devinfo)
Definition: devinst.c:2893
BOOL WINAPI SetupDiSetSelectedDriverW(IN HDEVINFO DeviceInfoSet, IN OUT PSP_DEVINFO_DATA DeviceInfoData OPTIONAL, IN OUT PSP_DRVINFO_DATA_W DriverInfoData OPTIONAL)
Definition: driver.c:1590
BOOL WINAPI SetupDiBuildDriverInfoList(IN HDEVINFO DeviceInfoSet, IN OUT PSP_DEVINFO_DATA DeviceInfoData OPTIONAL, IN DWORD DriverType)
Definition: driver.c:718
BOOL WINAPI SetupDiEnumDriverInfoW(IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData OPTIONAL, IN DWORD DriverType, IN DWORD MemberIndex, OUT PSP_DRVINFO_DATA_W DriverInfoData)
Definition: driver.c:1355
BOOL WINAPI SetupScanFileQueueW(HSPFILEQ handle, DWORD flags, HWND window, PSP_FILE_CALLBACK_W handler, PVOID context, PDWORD result)
Definition: queue.c:1510
#define L(x)
Definition: resources.c:13
HINSTANCE hInst
Definition: dxdiag.c:13
BOOL EnableDialogTheme(HWND hwnd)
Definition: dxdiag.c:38
VOID InsertTabCtrlItem(HWND hDlgCtrl, INT Position, LPWSTR uId)
Definition: dxdiag.c:102
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
FxAutoRegKey hKey
MdFileObject pFile
INT WINAPI GetTimeFormatW(LCID lcid, DWORD dwFlags, const SYSTEMTIME *lpTime, LPCWSTR lpFormat, LPWSTR lpTimeStr, INT cchOut)
Definition: lcformat.c:1089
INT WINAPI GetDateFormatW(LCID lcid, DWORD dwFlags, const SYSTEMTIME *lpTime, LPCWSTR lpFormat, LPWSTR lpDateStr, INT cchOut)
Definition: lcformat.c:989
HWND hList
Definition: livecd.c:10
#define ZeroMemory
Definition: minwinbase.h:31
LONG_PTR LPARAM
Definition: minwindef.h:175
LONG_PTR LRESULT
Definition: minwindef.h:176
UINT_PTR WPARAM
Definition: minwindef.h:174
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
unsigned __int3264 UINT_PTR
Definition: mstsclib_h.h:274
_In_ HANDLE hFile
Definition: mswsock.h:90
unsigned int UINT
Definition: ndis.h:50
#define REG_BINARY
Definition: nt_native.h:1499
#define KEY_READ
Definition: nt_native.h:1026
#define LOCALE_USER_DEFAULT
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
_In_ DWORD _In_ DWORD dwOffset
Definition: ntgdi.h:2033
#define LOWORD(l)
Definition: pedump.c:82
BYTE * PBYTE
Definition: pedump.c:66
PVOID pBuffer
#define SetupOpenFileQueue
Definition: fileqsup.c:29
#define SetupCloseFileQueue
Definition: fileqsup.c:30
#define D3DADAPTER_DEFAULT
Definition: d3d8.h:57
wcscpy
#define SPQ_SCAN_USE_CALLBACK
Definition: setupapi.h:620
#define DI_NOVCP
Definition: setupapi.h:49
#define SPDIT_CLASSDRIVER
Definition: setupapi.h:506
#define SPDRP_DEVICEDESC
Definition: setupapi.h:508
#define DIF_INSTALLDEVICEFILES
Definition: setupapi.h:141
#define SetupDiSetDeviceInstallParams
Definition: setupapi.h:2620
#define DIGCF_PROFILE
Definition: setupapi.h:174
#define DIGCF_PRESENT
Definition: setupapi.h:172
#define SPDRP_MFG
Definition: setupapi.h:519
#define DI_FLAGSEX_ALLOWEXCLUDEDDRVS
Definition: setupapi.h:87
TCHAR szTime[64]
Definition: solitaire.cpp:20
& rect
Definition: startmenu.cpp:1413
HWND hMainDialog
Definition: precomp.h:37
PDXDIAG_DISPLAY * DisplayAdapters
Definition: precomp.h:40
ULONG NumDisplayAdapter
Definition: precomp.h:39
WCHAR DeviceName[32]
Definition: wingdi.h:3264
DWORD StateFlags
Definition: wingdi.h:3266
WCHAR DeviceString[128]
Definition: wingdi.h:3265
WCHAR DeviceKey[128]
Definition: wingdi.h:3268
DWORD dmBitsPerPel
Definition: wingdi.h:2093
DWORD dmPelsWidth
Definition: wingdi.h:2094
DWORD dmPelsHeight
Definition: wingdi.h:2095
DWORD dmDisplayFrequency
Definition: wingdi.h:2100
WORD dmSize
Definition: wingdi.h:2066
Definition: tftpd.h:60
#define GetWindowLongPtr
Definition: treelist.c:73
#define SetWindowLongPtr
Definition: treelist.c:70
int32_t INT_PTR
Definition: typedefs.h:64
#define IN
Definition: typedefs.h:39
_In_ PWDFDEVICE_INIT _In_ PFN_WDF_DEVICE_SHUTDOWN_NOTIFICATION Notification
Definition: wdfcontrol.h:115
BOOL WINAPI EnumDisplayDevicesW(LPCWSTR lpDevice, DWORD iDevNum, PDISPLAY_DEVICEW lpDisplayDevice, DWORD dwFlags)
Definition: display.c:78
BOOL WINAPI EnumDisplaySettingsW(LPCWSTR lpszDeviceName, DWORD iModeNum, LPDEVMODEW lpDevMode)
Definition: display.c:408
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
#define WINAPI
Definition: msvc.h:6
#define DISPLAY_DEVICE_MIRRORING_DRIVER
Definition: wingdi.h:1399
struct _DISPLAY_DEVICEW DISPLAY_DEVICEW
struct _devicemodeW DEVMODEW
#define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP
Definition: wingdi.h:1396
#define TIME_FORCE24HOURFORMAT
Definition: winnls.h:298
#define DATE_SHORTDATE
Definition: winnls.h:209
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12
HWND WINAPI CreateDialogParamW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)
#define GW_OWNER
Definition: winuser.h:777
#define WM_GETTEXTLENGTH
Definition: winuser.h:1647
#define SWP_NOACTIVATE
Definition: winuser.h:1253
#define DWLP_USER
Definition: winuser.h:883
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
#define WM_COMMAND
Definition: winuser.h:1768
#define SWP_NOSIZE
Definition: winuser.h:1256
#define WM_GETTEXT
Definition: winuser.h:1646
#define WM_INITDIALOG
Definition: winuser.h:1767
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
LRESULT WINAPI SendDlgItemMessageW(_In_ HWND, _In_ int, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define WM_SETTEXT
Definition: winuser.h:1645
#define ENUM_CURRENT_SETTINGS
Definition: winuser.h:179
HWND WINAPI GetWindow(_In_ HWND, _In_ UINT)
#define SWP_NOOWNERZORDER
Definition: winuser.h:1260
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
#define SWP_NOZORDER
Definition: winuser.h:1258
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
Definition: wsk.h:409
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
__wchar_t WCHAR
Definition: xmlstorage.h:180
WCHAR * LPWSTR
Definition: xmlstorage.h:184