MCPcopy Create free account
hub / github.com/arrayfire/arrayfire / nvDriverVersion

Function nvDriverVersion

src/backend/cuda/driver.cpp:19–53  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

17#define snprintf _snprintf
18
19int nvDriverVersion(char *result, int len) {
20#ifndef OS_WIN
21 LPCTSTR lptstrFilename = "nvcuda.dll";
22 DWORD dwLen, dwHandle;
23 LPVOID lpData = NULL;
24 VS_FIXEDFILEINFO *lpBuffer;
25 unsigned int buflen;
26 DWORD version;
27 float fversion;
28 int rv;
29
30 dwLen = GetFileVersionInfoSize(lptstrFilename, &dwHandle);
31 if (dwLen == 0) return 0;
32
33 lpData = malloc(dwLen);
34 if (!lpData) return 0;
35
36 rv = GetFileVersionInfo(lptstrFilename, 0, dwLen, lpData);
37 if (!rv) return 0;
38
39 rv = VerQueryValue(lpData, "\\", (LPVOID *)&lpBuffer, &buflen);
40 if (!rv) return 0;
41
42 version = (HIWORD(lpBuffer->dwFileVersionLS) - 10) * 10000 +
43 LOWORD(lpBuffer->dwFileVersionLS);
44 fversion = version / 100.f;
45
46 snprintf(result, len, "%.2f", fversion);
47
48 free(lpData);
49#else
50 snprintf(result, len, "%.2f", 0.0);
51#endif
52 return 0;
53}
54
55#else
56

Callers 1

getDriverVersionFunction · 0.85

Calls 1

freeFunction · 0.85

Tested by

no test coverage detected