2

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ですか?

4

1 に答える 1

3

Safe Handles and Critical Finalization MSDN の記事では、この違いについて説明しています。

于 2010-07-28T21:02:47.103 に答える