आप पी/आह्वान के माध्यम से IsWow64Process कॉल करने की आवश्यकता:
[DllImport("kernel32.dll", SetLastError = true, CallingConvention = CallingConvention.Winapi)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool IsWow64Process([In] IntPtr processHandle, [Out, MarshalAs(UnmanagedType.Bool)] out bool wow64Process);
यहाँ यह थोड़ा आसान कॉल करने के लिए बनाने के लिए एक सहायक है:
public static bool Is64BitProcess(this Process process)
{
if (!Environment.Is64BitOperatingSystem)
return false;
bool isWow64Process;
if (!IsWow64Process(process.Handle, out isWow64Process))
throw new Win32Exception(Marshal.GetLastWin32Error());
return !isWow64Process;
}
स्रोत
2010-08-26 15:43:18
आप गलत सवाल पूछ रहे हैं। असली सवाल होना चाहिए: "मैंने रीडप्रोसेस मेमरी कॉल को कैसे खराब किया?" –
@ हंस मुझे इस कॉल के बारे में बिल्कुल परवाह नहीं है जब तक कि प्रश्न शीर्षक का उत्तर दिया जाए। मैंने जो समस्या सूचीबद्ध की है वह शीर्षक का जवाब देने का एक तरीका है। –
संभावित डुप्लिकेट [प्रक्रिया को कैसे जानें 32-बिट या 64-बिट प्रोग्रामेटिक रूप से] [http://stackoverflow.com/questions/1953377/how-to-now-a-process-is-32-bit-or -64-बिट-प्रोग्रामेटिक रूप से) –