如何使用c#获取进程访问的所有文件

时间:2018-06-06 12:46:01

标签: c# .net visual-studio service window

我正在尝试通过processid获取每个进程的进程列表和访问文件列表 我收到错误:无法在DLL'kernel32.dll中找到名为'RtlCopyMemory'的入口点

int nHandleInfoSize = 0x10000;
IntPtr ipHandlePointer = Marshal.AllocHGlobal(nHandleInfoSize);
int nLength = 0;
IntPtr ipHandle = IntPtr.Zero;

while ((nStatus = Win32API.NtQuerySystemInformation(CNST_SYSTEM_HANDLE_INFORMATION, ipHandlePointer, nHandleInfoSize, ref nLength)) == STATUS_INFO_LENGTH_MISMATCH)
{
    nHandleInfoSize = nLength;
    Marshal.FreeHGlobal(ipHandlePointer);
    ipHandlePointer = Marshal.AllocHGlobal(nLength);
}

byte[] baTemp = new byte[nLength];
Win32API.CopyMemory(baTemp, ipHandlePointer, (uint)nLength);// Getting error on this

This是我用过的参考链接。

请帮我解决问题。

0 个答案:

没有答案