Hallo,
ich verwende über Win32::API z.B. WTSEnumerateSessions oder WTSQuerySessionInformation. In beiden Fällen muss ich Speicher mit WTSFreeMemory freigeben. Nur scheint leider genau das über Winn32::API nicht zu funktionieren (Win7/10), der Speicherverbrauch steigt bei wiederholtem Aufruf kontinuierlich. Kennt jemand das Problem bzw. die Lösung?
Beispiel (verkürzt):
use Win32::API;
Win32::API->Import('wtsapi32.dll','WTSEnumerateSessions','NNNPP','N');
Win32::API->Import('wtsapi32.dll','WTSFreeMemory','P','');
while ( 1 ) {
my $Count = pack 'L', 0;
my $pSessionInfo = pack 'L', 0;
WTSEnumerateSessions(0,0,1,$pSessionInfo,$Count);
WTSFreeMemory($pSessionInfo);
select undef, undef, undef, 0.01;
}
Gruß Peter
Last edited: 2018-03-02 13:47:14 +0100 (CET)