Process Hacker
gpumon.h
Go to the documentation of this file.
1 #ifndef GPUMON_H
2 #define GPUMON_H
3 
4 // setupapi definitions
5 
6 typedef _Check_return_ HDEVINFO (WINAPI *_SetupDiGetClassDevsW)(
7  _In_opt_ CONST GUID *ClassGuid,
8  _In_opt_ PCWSTR Enumerator,
9  _In_opt_ HWND hwndParent,
10  _In_ DWORD Flags
11  );
12 
14  _In_ HDEVINFO DeviceInfoSet
15  );
16 
18  _In_ HDEVINFO DeviceInfoSet,
19  _In_opt_ PSP_DEVINFO_DATA DeviceInfoData,
20  _In_ CONST GUID *InterfaceClassGuid,
21  _In_ DWORD MemberIndex,
22  _Out_ PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData
23  );
24 
26  _In_ HDEVINFO DeviceInfoSet,
27  _In_ PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
28  _Out_writes_bytes_opt_(DeviceInterfaceDetailDataSize) PSP_DEVICE_INTERFACE_DETAIL_DATA_W DeviceInterfaceDetailData,
29  _In_ DWORD DeviceInterfaceDetailDataSize,
30  _Out_opt_ PDWORD RequiredSize,
31  _Out_opt_ PSP_DEVINFO_DATA DeviceInfoData
32  );
33 
35  _In_ HDEVINFO DeviceInfoSet,
36  _In_ PSP_DEVINFO_DATA DeviceInfoData,
37  _In_ DWORD Property,
38  _Out_opt_ PDWORD PropertyRegDataType,
39  _Out_opt_ PBYTE PropertyBuffer,
40  _In_ DWORD PropertyBufferSize,
41  _Out_opt_ PDWORD RequiredSize
42  );
43 
44 // Macros
45 
46 #define BYTES_NEEDED_FOR_BITS(Bits) ((((Bits) + sizeof(ULONG) * 8 - 1) / 8) & ~(SIZE_T)(sizeof(ULONG) - 1)) // divide round up
47 
48 // Structures
49 
50 typedef struct _ETP_GPU_ADAPTER
51 {
54  ULONG SegmentCount;
55  ULONG NodeCount;
57 
58  BOOLEAN HasActivity;
59 
63 
64 // Functions
65 
67  VOID
68  );
69 
70 PETP_GPU_ADAPTER EtpAllocateGpuAdapter(
71  _In_ ULONG NumberOfSegments
72  );
73 
75  _In_ HDEVINFO DeviceInfoSet,
76  _In_ PSP_DEVINFO_DATA DeviceInfoData
77  );
78 
80  _In_opt_ PVOID Parameter,
81  _In_opt_ PVOID Context
82  );
83 
84 #endif