Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# P/Invoke函数的32位版本_C#_Pinvoke - Fatal编程技术网

C# P/Invoke函数的32位版本

C# P/Invoke函数的32位版本,c#,pinvoke,C#,Pinvoke,我正在用C语言编写代码,它使用p/Invoke函数,例如NtQuerySystemInformation。但是,我注意到,这个函数只返回与我的进程比特数相同的进程相关的信息,我希望从系统上的每个进程中获取这些信息。有没有一种方法可以从同一个方法调用ntdll.dll中的32位和64位版本的函数 [DllImport("ntdll.dll")] private static extern NTStatus NtQueryObject( IntPtr objectHandle, Ob

我正在用C语言编写代码,它使用p/Invoke函数,例如
NtQuerySystemInformation
。但是,我注意到,这个函数只返回与我的进程比特数相同的进程相关的信息,我希望从系统上的每个进程中获取这些信息。有没有一种方法可以从同一个方法调用ntdll.dll中的32位和64位版本的函数

[DllImport("ntdll.dll")]
private static extern NTStatus NtQueryObject(
    IntPtr objectHandle,
    ObjectInformationClass informationClass,
    IntPtr informationPtr,
    uint informationLength,
    ref uint returnLength);

最明显的方法是消除抖动强制,如果你想做这类事情,在64位操作系统上以32位模式运行没有任何好处。右键单击项目>属性>构建选项卡>取消选中“首选32位”复选框。请记住,.NET Framework中已经使用了NtQuerySystemInformation,它为Process类提供了数据。的可能重复