今、コードにメモリ リークがあることがわかりましたが、WTSEnumerateSessionsEx および WTSFreeMemoryEx 関数について msdn を検索しましたが、リークもありました。
以下はコードです:
DWORD count = 0;
int ret = 0;
DWORD reserved = 1;
WTS_SESSION_INFO_1 *sinfo = NULL;
if (WTSEnumerateSessionsEx(handle_, &reserved, 0, &sinfo, &count)) {
//......
if (!WTSFreeMemoryEx(WTSTypeSessionInfoLevel1, sinfo, count))
printf("free failure, error code is:%d\n", GetLastError());
}
コードを実行すると、printf エラーコードは 87 です。システムに割り当てられた WTS_SESSION_INFO_1 *sinfo を解放する方法は?