From: Dmitry Timoshkov Subject: Re: [PATCH 1/5] ntoskrnl.exe: Implement KeAreApcsDisabled using critical region functions. Message-Id: <20190424223202.7ca4722d031cc2dd08d1e302@baikal.ru> Date: Wed, 24 Apr 2019 22:32:02 +0800 In-Reply-To: <20190424142509.528-1-dereklesho52@Gmail.com> References: <20190424142509.528-1-dereklesho52@Gmail.com> Derek Lesho wrote: > void WINAPI KeEnterCriticalRegion(void) > { > - FIXME(": stub\n"); > + TRACE(": semi-stub\n"); > + KeGetCurrentThread()->critical_region_count++; > } ... > void WINAPI KeLeaveCriticalRegion(void) > { > - FIXME(": stub\n"); > + TRACE(": semi-stub\n"); > + KeGetCurrentThread()->critical_region_count--; > } ... > +BOOLEAN WINAPI KeAreApcsDisabled(void) > +{ > + return !!KeGetCurrentThread()->critical_region_count; > +} Shouldn't these APIs use interlocked operations? -- Dmitry.