在使用 WinAPI 时,我决定实现对 GetProcessAfinityMask 的调用在我的 C# 应用程序中。然而,我看到这个函数有两个不同的签名。
其中一个使用 SafeProcessHandle
作为句柄:
[DllImport("kernel32.dll", CharSet=CharSet.Auto, SetLastError=true)]
public static extern bool GetProcessAffinityMask(SafeProcessHandle handle, out IntPtr processMask, out IntPtr systemMask);
另一个可能的版本( on P/Invoke )使用 IntPtr
:
[DllImport("kernel32.dll",SetLastError = true)]
static extern bool GetProcessAffinityMask(IntPtr hProcess,
out UIntPtr lpProcessAffinityMask, out UIntPtr lpSystemAffinityMask);
鉴于两个函数返回相同的值,传递 SafeProcessHandle
实例或 IntPtr
之间有什么区别?
最佳答案
关于c# - API 调用的 SafeProcessHandle 和 IntPtr 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3357413/