【发布时间】:2013-12-12 16:36:15
【问题描述】:
我有一个 VB6 应用程序,它具有以下似乎试图访问 Windows 进程信息的代码
我认为这可能是导致间歇性无限循环的原因 - REDIM 数组并占用所有内存。
有没有人知道以下代码的用途,以及他们是否可以帮助捕获它循环很长时间并且 bytBuf 大小增长过多的场景(您可以推荐一个最大数组byteBuf 的大小?)
Do
ReDim bytBuf(nSize)
ntStatus = NtQuerySystemInformation(SystemHandleInformation, VarPtr(bytBuf(0)), nSize, 0&)
If (Not NT_SUCCESS(ntStatus)) Then
If (ntStatus <> STATUS_INFO_LENGTH_MISMATCH) Then
Erase bytBuf
Exit Function
End If
'If it always ends up here, it will loop endlessly! How do I stop it?!
Else
Exit Do
End If
nSize = nSize * 2
ReDim bytBuf(nSize)
Loop
非常感谢 安德鲁
【问题讨论】: