finally {
waitResult = SafeNativeMethods.WaitForMultipleObjectsEx(waitHandleCount, _waitHandles.DangerousGetHandle(), false, waitForMultipleObjectsTimeout, false);
+#if !FULL_AOT_RUNTIME
// VSTFDEVDIV 479551 - call GetHRForLastWin32Error immediately after after the native call
if (waitResult == WAIT_FAILED) {
waitForMultipleObjectsExHR = Marshal.GetHRForLastWin32Error();
}
+#endif
}
// From the WaitAny docs: "If more than one object became signaled during
if (CREATION_HANDLE == waitResult) {
int result = SafeNativeMethods.ReleaseSemaphore(_waitHandles.CreationHandle.DangerousGetHandle(), 1, IntPtr.Zero);
if (0 == result) { // failure case
+#if !FULL_AOT_RUNTIME
releaseSemaphoreResult = Marshal.GetHRForLastWin32Error();
+#endif
}
}
if (mustRelease) {
}
static private void IntegratedSecurityError(int caller) {
+#if !FULL_AOT_RUNTIME
// passing 1,2,3,4,5 instead of true/false so that with a debugger
// we could determine more easily which Win32 method call failed
int lastError = Marshal.GetHRForLastWin32Error();
if ((Win32_CheckTokenMembership != caller) || (E_NotImpersonationToken != lastError)) {
Marshal.ThrowExceptionForHR(lastError); // will only throw if (hresult < 0)
}
+#endif
}
}
if (null != unknown) {
RuntimeHelpers.PrepareConstrainedRegions();
try {} finally {
+#if !FULL_AOT_RUNTIME
base.handle = Marshal.GetIUnknownForObject(unknown); //
+#endif
}
}
}
modID = NoData;
string friendlyName = getAppDomainFriendlyName();
+#if !MONO
BIDEXTINFO extInfo = new BIDEXTINFO(Marshal.GetHINSTANCE(mod),
getModulePath(mod),
friendlyName,
hCookie.AddrOfPinnedObject());
-#if !MONO
NativeMethods.DllBidEntryPoint( ref modID, BidVer, modIdentity,
configFlags, ref modFlags, ctrlCallback,
ref extInfo, IntPtr.Zero, IntPtr.Zero );