WinAPIを使用しているときに、C#アプリケーションにGetProcessAfinityMaskの呼び出しを実装することにしました。ただし、この関数には2つの異なるシグネチャがあります。
それらの1つはSafeProcessHandle
ハンドルに使用します:
[DllImport("kernel32.dll", CharSet=CharSet.Auto, SetLastError=true)]
public static extern bool GetProcessAffinityMask(SafeProcessHandle handle, out IntPtr processMask, out IntPtr systemMask);
他の可能なバージョン(P / Invoke)は以下を使用しますIntPtr
:
[DllImport("kernel32.dll",SetLastError = true)]
static extern bool GetProcessAffinityMask(IntPtr hProcess,
out UIntPtr lpProcessAffinityMask, out UIntPtr lpSystemAffinityMask);
両方の関数が同じ値を返すとすると、インスタンスを渡すことと、SafeProcessHandle
インスタンスを渡すことの違いは何IntPtr
ですか?