Prozesse, Threads und Handles auslesen



  • Hallo,

    ich habe folgendes Problem. Ich würde gerne per JNI die Anzahl der Prozesse, Handles und Threads ausgeben. Bekomme jedoch die Meldung "warning: implicit declaration of function GetPerformanceInfo". Habe leider nicht so große Ahnung, was C/C++ angeht. Wäre wirklich geil, wenn ihr mir helfen könntet. Vielen Dank schonmal im Voraus.

    Gruß, Tom

    #include <windows.h>
    #include <jni.h>
    #include "cpuinfo.h"
    #include <stdio.h>
    #include <stdlib.h>
    #include <psapi.h>
    
    typedef struct _PERFORMANCE_INFORMATION {
      DWORD cb;
      SIZE_T CommitTotal;
      SIZE_T CommitLimit;
      SIZE_T CommitPeak;
      SIZE_T PhysicalTotal;
      SIZE_T PhysicalAvailable;
      SIZE_T SystemCache;
      SIZE_T KernelTotal;
      SIZE_T KernelPaged;
      SIZE_T KernelNonpaged;
      SIZE_T PageSize;
      DWORD HandleCount;
      DWORD ProcessCount;
      DWORD ThreadCount;
    } PERFORMANCE_INFORMATION, 
     *PPERFORMANCE_INFORMATION;
    
    JNIEXPORT void JNICALL Java_businessLayer_CpuInfo_getThreads (JNIEnv *env, jobject jobj) {
    
    	PERFORMANCE_INFORMATION pinf;
     	DWORD cb = sizeof(PERFORMANCE_INFORMATION);
    
    	GetPerformanceInfo(pinf, cb); 
    
      	jclass cls;
      	jfieldID fid;
    
      	cls = (*env)->GetObjectClass(env, jobj);
      	fid = (*env)->GetFieldID(env, cls, "threads", "I");
      	if (fid == NULL) return;
    
      	(*env)->SetIntField(env, jobj, fid, pinf.ThreadCount);
    }
    

Anmelden zum Antworten