首页 > 解决方案 > 如何使用c#获取进程正在访问的所有文件

问题描述

我正在尝试通过 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

是我使用的参考链接。

请帮我解决问题。

标签: c#.netvisual-studioservicewindow

解决方案


推荐阅读