Am 07.10.2011 15:56, schrieb jimtabor(a)svn.reactos.org:
+DWORD
+APIENTRY
+NtUserGetAtomName(
+ ATOM nAtom,
+ PUNICODE_STRING pBuffer)
+{
+ DWORD Ret;
+ UNICODE_STRING CapturedName = {0};
+ UserEnterShared();
+ _SEH2_TRY
+ {
+ CapturedName = ProbeForReadUnicodeString(pBuffer);
+ Ret = IntGetAtomName((RTL_ATOM)nAtom, CapturedName.Buffer,
(ULONG)CapturedName.Length);
+ }
+ _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
+ {
+ Ret = 0;
+ }
+ _SEH2_END
+ UserLeave();
+ return Ret;
+}
IntGetAtomName must not be called from inside SEH, if it throws you'll be left with a
locked atom table.
Timo