00032 {
00033 INTERLOCKED_RESULT RetVal;
00034 LONG SpinVar;
00035 LONG LongVar;
00036
SHORT ShortVar;
00037 KSPIN_LOCK
Lock;
00038
00039
Lock = &SpinVar;
00040
00041 LongVar = 0;
00042 ShortVar = 0;
00043
00044 RetVal =
ExInterlockedDecrementLong(&LongVar, &Lock);
00045
if ((RetVal != ResultNegative) ||
00046 (LongVar != -1)) {
00047
DbgPrint(
"t&Lock failure #L1\n");
00048 }
00049
00050 RetVal =
ExInterlockedDecrementLong(&LongVar, &Lock);
00051
if ((RetVal != ResultNegative) ||
00052 (LongVar != -2)) {
00053
DbgPrint(
"t&Lock failure #L2\n");
00054 }
00055
00056 RetVal =
ExInterlockedIncrementLong(&LongVar, &Lock);
00057
if ((RetVal != ResultNegative) ||
00058 (LongVar != -1)) {
00059
DbgPrint(
"t&Lock failure #L3\n");
00060 }
00061
00062 RetVal =
ExInterlockedIncrementLong(&LongVar, &Lock);
00063
if ((RetVal != ResultZero) ||
00064 (LongVar != 0)) {
00065
DbgPrint(
"t&Lock failure #L4\n");
00066 }
00067
00068 RetVal =
ExInterlockedIncrementLong(&LongVar, &Lock);
00069
if ((RetVal != ResultPositive) ||
00070 (LongVar != 1)) {
00071
DbgPrint(
"t&Lock failure #L5\n");
00072 }
00073
00074 RetVal =
ExInterlockedIncrementLong(&LongVar, &Lock);
00075
if ((RetVal != ResultPositive) ||
00076 (LongVar != 2)) {
00077
DbgPrint(
"t&Lock failure #L6\n");
00078 }
00079
00080 RetVal =
ExInterlockedDecrementLong(&LongVar, &Lock);
00081
if ((RetVal != ResultPositive) ||
00082 (LongVar != 1)) {
00083
DbgPrint(
"t&Lock failure #L7\n");
00084 }
00085
00086 RetVal =
ExInterlockedDecrementLong(&LongVar, &Lock);
00087
if ((RetVal != ResultZero) ||
00088 (LongVar != 0)) {
00089
DbgPrint(
"t&Lock failure #L8\n");
00090 }
00091 }