我有一个 VB6 应用程序,它具有以下似乎正在尝试访问 Windows 进程信息的代码片段
我认为这可能是间歇性无限循环的原因 - REDIM 数组并咀嚼所有内存。
有没有人知道以下代码的用途,如果他们可以帮助捕捉它循环很长时间并且 bytBuf 的大小增长过多的场景(并且您可以推荐一个最大数组大小为 bytBuf ?)
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
非常感谢安德鲁