Changeset 12160
- Timestamp:
- 09/06/08 01:23:14 (3 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/VBox/Runtime/r0drv/nt/semfastmutex-r0drv-nt.cpp
r10827 r12160 97 97 ASMAtomicIncU32(&pFastInt->u32Magic); 98 98 Assert(pFastInt->Mutex.Count == 1); 99 /* It's not very clear what this Contention field really means. Seems to be a counter for the number of times contention occurred. (see e.g. http://winprogger.com/?p=6) 99 /* It's not very clear what this Contention field really means. Seems to be a counter for the number of times contention occurred. (see e.g. http://winprogger.com/?p=6) 100 100 * The following assertion is therefor wrong: 101 101 * Assert(pFastInt->Mutex.Contention == 0); … … 118 118 return VERR_INVALID_PARAMETER; 119 119 } 120 #if 1 121 /* 122 * ExAcquireFastMutex will set the IRQL to APC regardless of our current 123 * level. Lowering the IRQL may screw things up, so to allow this. 124 */ 125 # if 0 /** @todo enable this when the logger has been fixed. */ 126 AssertMsg(KeGetCurrentIrql() <= APC_LEVEL, 127 ("%d\n", KeGetCurrentIrql()), 128 VERR_INVALID_STATE); 129 # else /* the gentler approach. */ 130 KIRQL Irql = KeGetCurrentIrql(); 131 if (Irql > APC_LEVEL) 132 return VERR_INVALID_STATE; 133 # endif 134 #endif 120 135 121 136 ExAcquireFastMutex(&pFastInt->Mutex);

