[ros-diffs] [ion] 24652: - Add some missing/internal definitions to proper headers. - Get rid of FLUSH_TLB macros and use KeFlushCurrentTb and the MSVC_compatible instrinsic __invlpg; - Fix some prototypes. - Fixed unsigned/signed mismatches. - Fix SEH usage in ExAllocatePoolWithQuotaTag.

ion at svn.reactos.org ion at svn.reactos.org
Wed Oct 25 20:23:47 CEST 2006


Author: ion
Date: Wed Oct 25 22:23:45 2006
New Revision: 24652

URL: http://svn.reactos.org/svn/reactos?rev=24652&view=rev
Log:
- Add some missing/internal definitions to proper headers.
- Get rid of FLUSH_TLB macros and use KeFlushCurrentTb and the MSVC_compatible instrinsic __invlpg;
- Fix some prototypes.
- Fixed unsigned/signed mismatches.
- Fix SEH usage in ExAllocatePoolWithQuotaTag.

Modified:
    trunk/reactos/include/ddk/ntifs.h
    trunk/reactos/include/ndk/iotypes.h
    trunk/reactos/include/ndk/ldrtypes.h
    trunk/reactos/include/psdk/winnt.h
    trunk/reactos/ntoskrnl/cc/pin.c
    trunk/reactos/ntoskrnl/fs/context.c
    trunk/reactos/ntoskrnl/include/internal/ex.h
    trunk/reactos/ntoskrnl/include/internal/i386/intrin_i.h
    trunk/reactos/ntoskrnl/include/internal/ob.h
    trunk/reactos/ntoskrnl/io/iomgr/bootlog.c
    trunk/reactos/ntoskrnl/kd/wrappers/gdbstub.c
    trunk/reactos/ntoskrnl/ke/i386/kiinit.c
    trunk/reactos/ntoskrnl/ke/i386/ldt.c
    trunk/reactos/ntoskrnl/mm/i386/page.c
    trunk/reactos/ntoskrnl/mm/iospace.c
    trunk/reactos/ntoskrnl/mm/pool.c
    trunk/reactos/ntoskrnl/ob/obref.c
    trunk/reactos/ntoskrnl/se/lsa.c
    trunk/reactos/ntoskrnl/se/token.c

Modified: trunk/reactos/include/ddk/ntifs.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/ntifs.h?rev=24652&r1=24651&r2=24652&view=diff
==============================================================================
--- trunk/reactos/include/ddk/ntifs.h (original)
+++ trunk/reactos/include/ddk/ntifs.h Wed Oct 25 22:23:45 2006
@@ -70,6 +70,30 @@
 extern LARGE_INTEGER                IoReadTransferCount;
 extern LARGE_INTEGER                IoWriteTransferCount;
 extern LARGE_INTEGER                IoOtherTransferCount;
+
+typedef STRING LSA_STRING, *PLSA_STRING;
+typedef ULONG  LSA_OPERATIONAL_MODE, *PLSA_OPERATIONAL_MODE;
+
+typedef enum _SECURITY_LOGON_TYPE
+{
+    UndefinedLogonType = 0,
+    Interactive = 2,
+    Network,
+    Batch,
+    Service,
+    Proxy,
+    Unlock,
+    NetworkCleartext,
+    NewCredentials,
+#if (_WIN32_WINNT >= 0x0501)
+    RemoteInteractive,
+    CachedInteractive,
+#endif
+#if (_WIN32_WINNT >= 0x0502)
+    CachedRemoteInteractive,
+    CachedUnlock
+#endif
+} SECURITY_LOGON_TYPE, *PSECURITY_LOGON_TYPE;
 
 #define ANSI_DOS_STAR                   ('<')
 #define ANSI_DOS_QM                     ('>')
@@ -378,6 +402,7 @@
 #define TOKEN_HAS_BACKUP_PRIVILEGE      0x02
 #define TOKEN_HAS_RESTORE_PRIVILEGE     0x04
 #define TOKEN_HAS_ADMIN_GROUP           0x08
+#define TOKEN_WRITE_RESTRICTED          0x08
 #define TOKEN_IS_RESTRICTED             0x10
 
 #define VACB_MAPPING_GRANULARITY        (0x40000)
@@ -1993,7 +2018,7 @@
     IN PFILE_OBJECT     FileObject,
     IN PLARGE_INTEGER   FileOffset,
     IN ULONG            Length,
-    IN BOOLEAN          Wait,
+    IN ULONG            Flags,
     OUT PVOID           *Bcb,
     OUT PVOID           *Buffer
 );
@@ -2026,6 +2051,8 @@
     IN PMDL             MdlChain
 );
 
+#define MAP_WAIT        1
+
 NTKERNELAPI
 BOOLEAN
 NTAPI
@@ -2033,11 +2060,7 @@
     IN PFILE_OBJECT     FileObject,
     IN PLARGE_INTEGER   FileOffset,
     IN ULONG            Length,
-#if (VER_PRODUCTBUILD >= 2195)
     IN ULONG            Flags,
-#else
-    IN BOOLEAN          Wait,
-#endif
     IN OUT PVOID        *Bcb
 );
 
@@ -2048,11 +2071,7 @@
     IN PFILE_OBJECT     FileObject,
     IN PLARGE_INTEGER   FileOffset,
     IN ULONG            Length,
-#if (VER_PRODUCTBUILD >= 2195)
     IN ULONG            Flags,
-#else
-    IN BOOLEAN          Wait,
-#endif
     OUT PVOID           *Bcb,
     OUT PVOID           *Buffer
 );
@@ -2076,11 +2095,7 @@
     IN PLARGE_INTEGER   FileOffset,
     IN ULONG            Length,
     IN BOOLEAN          Zero,
-#if (VER_PRODUCTBUILD >= 2195)
     IN ULONG            Flags,
-#else
-    IN BOOLEAN          Wait,
-#endif
     OUT PVOID           *Bcb,
     OUT PVOID           *Buffer
 );

Modified: trunk/reactos/include/ndk/iotypes.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/iotypes.h?rev=24652&r1=24651&r2=24652&view=diff
==============================================================================
--- trunk/reactos/include/ndk/iotypes.h (original)
+++ trunk/reactos/include/ndk/iotypes.h Wed Oct 25 22:23:45 2006
@@ -187,12 +187,17 @@
 #define DNUF_NOT_DISABLEABLE                    0x0008
 
 //
+// Internal Option Flags
+//
+#define IO_ATTACH_DEVICE_API                    0x80000000
+
+//
 // Undocumented WMI Registration Flags
 //
-#define WMIREG_FLAG_TRACE_PROVIDER          0x00010000
-#define WMIREG_FLAG_TRACE_NOTIFY_MASK       0x00F00000
-#define WMIREG_NOTIFY_DISK_IO               0x00100000
-#define WMIREG_NOTIFY_TDI_IO                0x00200000
+#define WMIREG_FLAG_TRACE_PROVIDER              0x00010000
+#define WMIREG_FLAG_TRACE_NOTIFY_MASK           0x00F00000
+#define WMIREG_NOTIFY_DISK_IO                   0x00100000
+#define WMIREG_NOTIFY_TDI_IO                    0x00200000
 
 //
 // I/O Completion Information Class for NtQueryIoCompletionInformation

Modified: trunk/reactos/include/ndk/ldrtypes.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/ldrtypes.h?rev=24652&r1=24651&r2=24652&view=diff
==============================================================================
--- trunk/reactos/include/ndk/ldrtypes.h (original)
+++ trunk/reactos/include/ndk/ldrtypes.h Wed Oct 25 22:23:45 2006
@@ -66,6 +66,11 @@
 //
 #define LDR_LOCK_LOADER_LOCK_FLAG_RAISE_STATUS  0x00000001
 #define LDR_LOCK_LOADER_LOCK_FLAG_TRY_ONLY      0x00000002
+
+//
+// FIXME: THIS SHOULD *NOT* BE USED!
+//
+#define IMAGE_SCN_TYPE_NOLOAD                   0x00000002
 
 //
 // Loader Data stored in the PEB

Modified: trunk/reactos/include/psdk/winnt.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/winnt.h?rev=24652&r1=24651&r2=24652&view=diff
==============================================================================
--- trunk/reactos/include/psdk/winnt.h (original)
+++ trunk/reactos/include/psdk/winnt.h Wed Oct 25 22:23:45 2006
@@ -1130,7 +1130,7 @@
 #define IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR	14
 #define IMAGE_SCN_TYPE_REG 0
 #define IMAGE_SCN_TYPE_DSECT 1
-#define IMAGE_SCN_TYPE_NOLOAD 2
+//#define IMAGE_SCN_TYPE_NOLOAD 2
 #define IMAGE_SCN_TYPE_GROUP 4
 #define IMAGE_SCN_TYPE_NO_PAD 8
 #define IMAGE_SCN_CNT_CODE 32

Modified: trunk/reactos/ntoskrnl/cc/pin.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/cc/pin.c?rev=24652&r1=24651&r2=24652&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/cc/pin.c (original)
+++ trunk/reactos/ntoskrnl/cc/pin.c Wed Oct 25 22:23:45 2006
@@ -27,7 +27,7 @@
 CcMapData (IN PFILE_OBJECT FileObject,
 	   IN PLARGE_INTEGER FileOffset,
 	   IN ULONG Length,
-	   IN BOOLEAN Wait,
+	   IN ULONG Flags,
 	   OUT PVOID *pBcb,
 	   OUT PVOID *pBuffer)
 {
@@ -39,9 +39,9 @@
   PINTERNAL_BCB iBcb;
   ULONG ROffset;
 
-  DPRINT("CcMapData(FileObject 0x%p, FileOffset %I64x, Length %d, Wait %d,"
+  DPRINT("CcMapData(FileObject 0x%p, FileOffset %I64x, Length %d, Flags %d,"
 	 " pBcb 0x%p, pBuffer 0x%p)\n", FileObject, FileOffset->QuadPart,
-	 Length, Wait, pBcb, pBuffer);
+	 Length, Flags, pBcb, pBuffer);
 
   ReadOffset = (ULONG)FileOffset->QuadPart;
   Bcb = FileObject->SectionObjectPointer->SharedCacheMap;
@@ -67,7 +67,7 @@
     }
   if (!Valid)
     {
-      if (!Wait)
+      if (!(Flags & MAP_WAIT))
 	{
           CcRosReleaseCacheSegment(Bcb, CacheSeg, FALSE, FALSE, FALSE);
 	  return(FALSE);

Modified: trunk/reactos/ntoskrnl/fs/context.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/fs/context.c?rev=24652&r1=24651&r2=24652&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/fs/context.c (original)
+++ trunk/reactos/ntoskrnl/fs/context.c Wed Oct 25 22:23:45 2006
@@ -62,7 +62,7 @@
  */
 PFSRTL_PER_FILEOBJECT_CONTEXT
 NTAPI
-FsRtlRemovePerFileObjectContext(IN PFSRTL_ADVANCED_FCB_HEADER PerFileObjectContext,
+FsRtlRemovePerFileObjectContext(IN PFILE_OBJECT PerFileObjectContext,
                                 IN PVOID OwnerId OPTIONAL,
                                 IN PVOID InstanceId OPTIONAL)
 {

Modified: trunk/reactos/ntoskrnl/include/internal/ex.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/ex.h?rev=24652&r1=24651&r2=24652&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/include/internal/ex.h (original)
+++ trunk/reactos/ntoskrnl/include/internal/ex.h Wed Oct 25 22:23:45 2006
@@ -514,10 +514,10 @@
  *--*/
 VOID
 FORCEINLINE
-ExInitializePushLock(IN PEX_PUSH_LOCK PushLock)
+ExInitializePushLock(IN PULONG_PTR PushLock)
 {
     /* Set the value to 0 */
-    PushLock->Value = 0;
+    *PushLock = 0;
 }
 
 /*++

Modified: trunk/reactos/ntoskrnl/include/internal/i386/intrin_i.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/i386/intrin_i.h?rev=24652&r1=24651&r2=24652&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/include/internal/i386/intrin_i.h (original)
+++ trunk/reactos/ntoskrnl/include/internal/i386/intrin_i.h Wed Oct 25 22:23:45 2006
@@ -39,6 +39,13 @@
     : /* no outputs */ \
     : "q" (X));
 
+#define Ke386SetTr(X)                   __asm__ __volatile__("ltr %%ax" : :"a" (X));
+
+#define Ke386GetTr(X) \
+    __asm__("str %0\n\t" \
+    : /* no outputs */ \
+    : "m" (X));
+
 #define Ke386SaveFlags(x)        __asm__ __volatile__("pushfl ; popl %0":"=g" (x): /* no input */)
 #define Ke386RestoreFlags(x)     __asm__ __volatile__("pushl %0 ; popfl": /* no output */ :"g" (x):"memory")
 
@@ -58,8 +65,6 @@
 
 #define _Ke386SetDr(N,X)         __asm__ __volatile__("movl %0,%%dr" #N : :"r" (X));
 
-#define Ke386SetTr(X)         __asm__ __volatile__("ltr %%ax" : :"a" (X));
-#define Ke386GetTr(X)         __asm__ __volatile__("str %%ax" : :"a" (X));
 
 static inline void Ki386Cpuid(ULONG Op, PULONG Eax, PULONG Ebx, PULONG Ecx, PULONG Edx)
 {
@@ -69,25 +74,11 @@
 }
 
 #define Ke386Rdmsr(msr,val1,val2) __asm__ __volatile__("rdmsr" : "=a" (val1), "=d" (val2) : "c" (msr))
-
 #define Ke386Wrmsr(msr,val1,val2) __asm__ __volatile__("wrmsr" : /* no outputs */ : "c" (msr), "a" (val1), "d" (val2))
 
-#define FLUSH_TLB   {				\
-    unsigned int tmp;	\
-    __asm__ __volatile__(	\
-    "movl %%cr3,%0\n\t"	\
-    "movl %0,%%cr3\n\t"	\
-    : "=r" (tmp)	\
-    :: "memory");	\
-}
-
-#define FLUSH_TLB_ONE(addr) __asm__ __volatile__(		\
-    "invlpg %0"				\
-    :					\
-    : "m" (*(volatile long *) (addr)))
-
-#define Ke386HaltProcessor()     __asm__("hlt\n\t");
-#define Ke386FnInit()     __asm__("fninit\n\t");
+#define Ke386HaltProcessor()        __asm__("hlt\n\t");
+
+#define Ke386FnInit()               __asm__("fninit\n\t");
 
 //
 // DR Macros

Modified: trunk/reactos/ntoskrnl/include/internal/ob.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/ob.h?rev=24652&r1=24651&r2=24652&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/include/internal/ob.h (original)
+++ trunk/reactos/ntoskrnl/include/internal/ob.h Wed Oct 25 22:23:45 2006
@@ -197,14 +197,14 @@
 FASTCALL
 ObDereferenceObjectEx(
     IN PVOID Object,
-    IN ULONG Count
+    IN LONG Count
 );
 
 LONG
 FASTCALL
 ObReferenceObjectEx(
     IN PVOID Object,
-    IN ULONG Count
+    IN LONG Count
 );
 
 BOOLEAN

Modified: trunk/reactos/ntoskrnl/io/iomgr/bootlog.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/bootlog.c?rev=24652&r1=24651&r2=24652&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/io/iomgr/bootlog.c (original)
+++ trunk/reactos/ntoskrnl/io/iomgr/bootlog.c Wed Oct 25 22:23:45 2006
@@ -314,11 +314,9 @@
       ExReleaseResourceLite(&IopBootLogResource);
       return;
     }
-#if defined (__GNUC__)
-  Status = IopWriteLogFile(L"ReactOS "KERNEL_VERSION_STR);
-#elif defined (_MSC_VER)
-  Status = IopWriteLogFile("ReactOS "KERNEL_VERSION_STR);
-#endif
+
+  //Status = IopWriteLogFile(L"ReactOS "KERNEL_VERSION_STR);
+
   if (!NT_SUCCESS(Status))
     {
       DPRINT1("IopWriteLogFile() failed (Status %lx)\n", Status);

Modified: trunk/reactos/ntoskrnl/kd/wrappers/gdbstub.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/kd/wrappers/gdbstub.c?rev=24652&r1=24651&r2=24652&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/kd/wrappers/gdbstub.c (original)
+++ trunk/reactos/ntoskrnl/kd/wrappers/gdbstub.c Wed Oct 25 22:23:45 2006
@@ -1331,7 +1331,7 @@
       DPRINT("Thread %p acquired mutex\n", PsGetCurrentThread());
 
       /* Disable hardware debugging while we are inside the stub */
-      _Ke386SetDr(7, 0);
+      Ke386SetDr7(0);
       GspUnloadBreakpoints(TrapFrame);
 
       /* Make sure we're debugging the current thread. */

Modified: trunk/reactos/ntoskrnl/ke/i386/kiinit.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/kiinit.c?rev=24652&r1=24651&r2=24652&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/ke/i386/kiinit.c (original)
+++ trunk/reactos/ntoskrnl/ke/i386/kiinit.c Wed Oct 25 22:23:45 2006
@@ -525,7 +525,7 @@
     *Idt = (PKIDTENTRY)IdtDescriptor.Base;
 
     /* Get TSS and FS Selectors */
-    Ke386GetTr(&Tr);
+    Ke386GetTr(Tr);
     if (Tr != KGDT_TSS) Tr = KGDT_TSS; // FIXME: HACKHACK
     Fs = Ke386GetFs();
 

Modified: trunk/reactos/ntoskrnl/ke/i386/ldt.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/ldt.c?rev=24652&r1=24651&r2=24652&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/ke/i386/ldt.c (original)
+++ trunk/reactos/ntoskrnl/ke/i386/ldt.c Wed Oct 25 22:23:45 2006
@@ -33,7 +33,7 @@
 
    KeAcquireSpinLock(&GdtLock, &oldIrql);
 
-   Gdt = KeGetPcr()->GDT;
+   Gdt = (PUSHORT)KeGetPcr()->GDT;
    Entry = (Entry & (~0x3)) / 2;
 
    Gdt[Entry + 1] = (USHORT)(((ULONG)Base) & 0xffff);

Modified: trunk/reactos/ntoskrnl/mm/i386/page.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/i386/page.c?rev=24652&r1=24651&r2=24652&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/mm/i386/page.c (original)
+++ trunk/reactos/ntoskrnl/mm/i386/page.c Wed Oct 25 22:23:45 2006
@@ -85,11 +85,11 @@
    }
    else if (Address == (PVOID)0xfffffffe)
    {
-      FLUSH_TLB;
-   }
-   else
-   {
-      FLUSH_TLB_ONE(Address);
+      KeFlushCurrentTb();
+   }
+   else
+   {
+       __invlpg(Address);
    }
 }
 
@@ -112,7 +112,7 @@
 #else
    if ((Pt && MmUnmapPageTable(Pt)) || Address >= MmSystemRangeStart)
    {
-      FLUSH_TLB_ONE(Address);
+      __invlpg(Address);
    }
 #endif
 }
@@ -2220,7 +2220,7 @@
       }
    }
    Address = (PVOID)((ULONG_PTR)HYPERSPACE + i * PAGE_SIZE);
-   FLUSH_TLB_ONE(Address);
+   __invlpg(Address);
    return Address;
 }
 
@@ -2242,7 +2242,7 @@
       Entry = InterlockedExchange((PLONG)ADDR_TO_PTE(Address), PFN_TO_PTE(NewPage) | PA_PRESENT | PA_READWRITE);
       Pfn = PTE_TO_PFN(Entry);
    }
-   FLUSH_TLB_ONE(Address);
+   __invlpg(Address);
    return Pfn;
 }
 
@@ -2264,7 +2264,7 @@
       Entry = InterlockedExchange((PLONG)ADDR_TO_PTE(Address), 0);
       Pfn = PTE_TO_PFN(Entry);
    }
-   FLUSH_TLB_ONE(Address);
+   __invlpg(Address);
    return Pfn;
 }
 

Modified: trunk/reactos/ntoskrnl/mm/iospace.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/iospace.c?rev=24652&r1=24651&r2=24652&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/mm/iospace.c (original)
+++ trunk/reactos/ntoskrnl/mm/iospace.c Wed Oct 25 22:23:45 2006
@@ -140,7 +140,7 @@
 MmUnmapIoSpace (IN PVOID BaseAddress,
                 IN ULONG NumberOfBytes)
 {
-   ULONG Offset;
+   LONG Offset;
    PVOID Address = BaseAddress;
 
    Offset = (ULONG_PTR)Address % PAGE_SIZE;

Modified: trunk/reactos/ntoskrnl/mm/pool.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/pool.c?rev=24652&r1=24651&r2=24652&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/mm/pool.c (original)
+++ trunk/reactos/ntoskrnl/mm/pool.c Wed Oct 25 22:23:45 2006
@@ -161,41 +161,51 @@
     return ExAllocatePoolWithTag(PoolType, NumberOfBytes, Tag);
 }
 
-/*
- * @implemented
- */
-PVOID STDCALL
+_SEH_DEFINE_LOCALS(ExQuotaPoolVars)
+{
+    PVOID Block;
+};
+
+_SEH_FILTER(FreeAndGoOn)
+{
+    _SEH_ACCESS_LOCALS(ExQuotaPoolVars);
+
+    /* Couldn't charge, so free the pool and let the caller SEH manage */
+    ExFreePool(_SEH_VAR(Block));
+    return EXCEPTION_CONTINUE_SEARCH;
+}
+
+/*
+ * @implemented
+ */
+PVOID
+NTAPI
 ExAllocatePoolWithQuotaTag (IN POOL_TYPE PoolType,
-                            IN ULONG  NumberOfBytes,
-                            IN ULONG  Tag)
-{
-    PVOID Block;
+                            IN ULONG NumberOfBytes,
+                            IN ULONG Tag)
+{
     PEPROCESS Process;
+    _SEH_DECLARE_LOCALS(ExQuotaPoolVars);
 
     /* Allocate the Pool First */
-    Block = EiAllocatePool(PoolType,
-                            NumberOfBytes,
-                            Tag,
-                            &ExAllocatePoolWithQuotaTag);
+    _SEH_VAR(Block) = EiAllocatePool(PoolType,
+                                     NumberOfBytes,
+                                     Tag,
+                                     &ExAllocatePoolWithQuotaTag);
 
     /* "Quota is not charged to the thread for allocations >= PAGE_SIZE" - OSR Docs */
-    if (!(NumberOfBytes >= PAGE_SIZE)) {
-
+    if (!(NumberOfBytes >= PAGE_SIZE))
+    {
         /* Get the Current Process */
         Process = PsGetCurrentProcess();
 
         /* PsChargePoolQuota returns an exception, so this needs SEH */
-        _SEH_FILTER(FreeAndGoOn)
-        {
-            /* Couldn't charge, so free the pool and let the caller SEH manage */
-            ExFreePool(Block);
-            return EXCEPTION_CONTINUE_SEARCH;
-        }
-
         _SEH_TRY
         {
-            //* FIXME: Is there a way to get the actual Pool size allocated from the pool header? */
-            PsChargePoolQuota(Process, PoolType & PAGED_POOL_MASK, NumberOfBytes);
+            /* FIXME: Is there a way to get the actual Pool size allocated from the pool header? */
+            PsChargePoolQuota(Process,
+                              PoolType & PAGED_POOL_MASK,
+                              NumberOfBytes);
         }
         _SEH_EXCEPT(FreeAndGoOn)
         {
@@ -205,7 +215,8 @@
         _SEH_END;
     }
 
-    return Block;
+    /* Return the allocated block */
+    return _SEH_VAR(Block);
 }
 
 /*

Modified: trunk/reactos/ntoskrnl/ob/obref.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ob/obref.c?rev=24652&r1=24651&r2=24652&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/ob/obref.c (original)
+++ trunk/reactos/ntoskrnl/ob/obref.c Wed Oct 25 22:23:45 2006
@@ -70,7 +70,7 @@
 LONG
 FASTCALL
 ObReferenceObjectEx(IN PVOID Object,
-                    IN ULONG Count)
+                    IN LONG Count)
 {
     /* Increment the reference count and return the count now */
     return InterlockedExchangeAdd(&OBJECT_TO_OBJECT_HEADER(Object)->
@@ -81,10 +81,10 @@
 LONG
 FASTCALL
 ObDereferenceObjectEx(IN PVOID Object,
-                      IN ULONG Count)
+                      IN LONG Count)
 {
     POBJECT_HEADER Header;
-    ULONG NewCount;
+    LONG NewCount;
 
     /* Extract the object header */
     Header = OBJECT_TO_OBJECT_HEADER(Object);

Modified: trunk/reactos/ntoskrnl/se/lsa.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/se/lsa.c?rev=24652&r1=24651&r2=24652&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/se/lsa.c (original)
+++ trunk/reactos/ntoskrnl/se/lsa.c Wed Oct 25 22:23:45 2006
@@ -12,7 +12,6 @@
 #define NDEBUG
 #include <internal/debug.h>
 
-/* LsaCallAuthenticationPackage at 28 */
 /*
  * @unimplemented
  */
@@ -29,7 +28,6 @@
     return STATUS_NOT_IMPLEMENTED;
 }
 
-/* LsaDeregisterLogonProcess at 8 */
 /*
  * @unimplemented
  */
@@ -41,7 +39,6 @@
     return STATUS_NOT_IMPLEMENTED;
 }
 
-/* LsaFreeReturnBuffer at 4 */
 /*
  * @implemented
  */
@@ -57,31 +54,29 @@
                );
 }
 
-/* LsaLogonUser at 56 */
 /*
  * @unimplemented
  */
-NTSTATUS STDCALL LsaLogonUser (
-    ULONG Unknown0,
-    ULONG Unknown1,
-    ULONG Unknown2,
-    ULONG Unknown3,
-    ULONG Unknown4,
-    ULONG Unknown5,
-    ULONG Unknown6,
-    ULONG Unknown7,
-    ULONG Unknown8,
-    ULONG Unknown9,
-    ULONG Unknown10,
-    ULONG Unknown11,
-    ULONG Unknown12,
-    ULONG Unknown13
-    )
+NTSTATUS
+NTAPI
+LsaLogonUser(IN HANDLE LsaHandle,
+             IN PLSA_STRING OriginName,
+             IN SECURITY_LOGON_TYPE LogonType,
+             IN ULONG AuthenticationPackage,
+             IN PVOID AuthenticationInformation,
+             IN ULONG AuthenticationInformationLength,
+             IN PTOKEN_GROUPS LocalGroups OPTIONAL,
+             IN PTOKEN_SOURCE SourceContext,
+             OUT PVOID *ProfileBuffer,
+             OUT PULONG ProfileBufferLength,
+             OUT PLUID LogonId,
+             OUT PHANDLE Token,
+             OUT PQUOTA_LIMITS Quotas,
+             OUT PNTSTATUS SubStatus)
 {
     return STATUS_NOT_IMPLEMENTED;
 }
 
-/* LsaLookupAuthenticationPackage at 12 */
 /*
  * @unimplemented
  */
@@ -94,15 +89,14 @@
     return STATUS_NOT_IMPLEMENTED;
 }
 
-/* LsaRegisterLogonProcess at 12 */
 /*
  * @unimplemented
  */
-NTSTATUS STDCALL LsaRegisterLogonProcess (
-    ULONG	Unknown0,
-    ULONG	Unknown1,
-    ULONG	Unknown2
-    )
+NTSTATUS
+NTAPI
+LsaRegisterLogonProcess (IN PLSA_STRING LogonProcessName,
+                         OUT PHANDLE LsaHandle,
+                         OUT PLSA_OPERATIONAL_MODE SecurityMode)
 {
     return STATUS_NOT_IMPLEMENTED;
 }

Modified: trunk/reactos/ntoskrnl/se/token.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/se/token.c?rev=24652&r1=24651&r2=24652&view=diff
==============================================================================
--- trunk/reactos/ntoskrnl/se/token.c (original)
+++ trunk/reactos/ntoskrnl/se/token.c Wed Oct 25 22:23:45 2006
@@ -2415,7 +2415,7 @@
 	)
 {
     PAGED_CODE();
-    return (((PTOKEN)Token)->TokenFlags & TOKEN_HAS_ADMIN_GROUP) != 0;
+    return (((PTOKEN)Token)->TokenFlags & TOKEN_WRITE_RESTRICTED) != 0;
 }
 
 /*




More information about the Ros-diffs mailing list