8 #include <botan/internal/es_win32.h>
32 ::GetSystemInfo(&sys_info);
35 MEMORYSTATUSEX mem_info;
36 ::GlobalMemoryStatusEx(&mem_info);
40 ::GetCursorPos(&point);
43 ::GetCaretPos(&point);
51 HANDLE snapshot = ::CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);
54 #define TOOLHELP32_ITER(DATA_TYPE, FUNC_FIRST, FUNC_NEXT) \
58 info.dwSize = sizeof(DATA_TYPE); \
59 if(FUNC_FIRST(snapshot, &info)) \
63 rng.add_entropy_T(info); \
65 } while(FUNC_NEXT(snapshot, &info)); \
73 #undef TOOLHELP32_ITER
78 heap_list.dwSize =
sizeof(HEAPLIST32);
80 if(::Heap32ListFirst(snapshot, &heap_list))
86 HEAPENTRY32 heap_entry;
87 heap_entry.dwSize =
sizeof(HEAPENTRY32);
88 if(::Heap32First(&heap_entry,
89 heap_list.th32ProcessID,
90 heap_list.th32HeapID))
96 }
while(::Heap32Next(&heap_entry));
102 }
while(::Heap32ListNext(snapshot, &heap_list));
106 ::CloseHandle(snapshot);
void add_entropy_T(const T &t)
size_t poll(RandomNumberGenerator &rng) override
#define TOOLHELP32_ITER(DATA_TYPE, FUNC_FIRST, FUNC_NEXT)