Куда мне обратиться, чтобы узнать магические числа, которые должны быть предоставлены nvapi_QueryInterface?

родолжение моего предыдущего вопроса:помогите с python ctypes и nvapi

Я публикую еще один вопрос, потому что я уже выбрал ответ в своем предыдущем вопросе, и теперь вопрос изменился.

Используя python, я пытаюсь запросить nvapi.dll, чтобы получить значение использования моего GPU.

Вот как бы вы сделали это в C # (см. Ниже):http://code.google.com/p/open-hardware-monitor/source/browse/trunk/Hardware/Nvidia/NVAPI.cs

Поскольку мне нужен только небольшой набор функций, я не хочу переключаться на использование другого языка. Я думаю, что ctypes должен быть в состоянии сделать это ... Я просто не могу понять, как это сделать. Я никогда прежде не использовал Python ctypes.

Чтобы запросить использование gpu, мне сначала нужно вызвать функцию NvAPI_Initialize. Также необходимо использовать интерфейс запроса для ссылки на функцию:

from ctypes import *
nvapi = WinDLL("nvapi.dll")
nvapi_QueryInterface = nvapi.nvapi_QueryInterface

Используя приведенный выше код, у меня есть доступ к nvapi_QueryInterface, но я не могу понять, как повторить эту часть:

private static void GetDelegate<T>(uint id, out T newDelegate)
  where T : class
{
    IntPtr ptr = nvapi_QueryInterface(id);
    if (ptr != IntPtr.Zero)
    {
        newDelegate =
          Marshal.GetDelegateForFunctionPointer(ptr, typeof(T)) as T;
    }
    else
    {
        newDelegate = null;
    }
}

для ссылки на функции инициализации и использования:

GetDelegate(0x0150E828, out NvAPI_Initialize);
GetDelegate(0x189A1FDF, out NvAPI_GPU_GetUsages);

Мое понимание этого может все еще быть неправильным, но я потратил много времени, пытаясь понять это, поэтому я надеюсь, что кто-то может помочь подтолкнуть меня в правильном направлении, потому что я немного растерялся относительно того, как действовать дальше.

Может ли кто-нибудь помочь мне понять, как я могу заставить эту небольшую часть кода работать непосредственно в Python? Мне просто нужно иметь возможность вызвать функцию NvAPI_GPU_GetUsages в конце дня.

Благодарю.

Ответы на вопрос(1)

Ваш ответ на вопрос