Am 07.10.2011 15:56, schrieb jimtabor@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