use ctypes de python para interactuar con nvapi (seguimiento con código de demostración)

Esta es una continuación de mi pregunta anterior:help con python ctypes y nvapi

Estoy publicando otra pregunta porque ya seleccioné una respuesta en mi pregunta anterior y la pregunta ha cambiado de dirección ahora.

Utilizando Python, estoy tratando de consultar nvapi.dll para obtener mi valor de uso de gpu.

Así es como lo haría en C # (referenciado a continuación):http: //code.google.com/p/open-hardware-monitor/source/browse/trunk/Hardware/Nvidia/NVAPI.c

Porque solo necesito un pequeño subconjunto de la funcionalidad que realmente no quiero cambiar usando otro idioma. Creo que los ctypes deberían poder hacer esto ... Simplemente no puedo entender cómo hacerlo. Nunca antes había usado realmente los tipos de Python.

Para consultar el uso de gpu, primero necesito llamar a la función NvAPI_Initialize. También se debe usar la interfaz de consulta para hacer referencia a la función:

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

Utilizando el código anterior, tengo acceso a nvapi_QueryInterface, pero no puedo encontrar la manera de replicar esta parte:

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;
    }
}

para hacer referencia a las funciones de inicio y uso:

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

Mi entendimiento de esto aún puede estar equivocado, pero he pasado mucho tiempo tratando de resolver esto, así que espero que alguien pueda ayudarme a tomar la dirección correcta porque estoy un poco perdido en cuanto a cómo proceder.

¿Puede alguien ayudarme a comprender cómo puedo hacer que esta pequeña porción del código funcione directamente en Python? Solo necesito poder llamar a la función NvAPI_GPU_GetUsages al final del día.

Gracias