- Implement counting user objects per process

svn path=/trunk/; revision=51682
This commit is contained in:
Giannis Adamopoulos 2011-05-12 08:00:11 +00:00
parent 5c840249e9
commit a9aea243ea

View file

@ -54,7 +54,7 @@ __inline static HANDLE entry_to_handle(PUSER_HANDLE_TABLE ht, PUSER_HANDLE_ENTRY
__inline static PUSER_HANDLE_ENTRY alloc_user_entry(PUSER_HANDLE_TABLE ht) __inline static PUSER_HANDLE_ENTRY alloc_user_entry(PUSER_HANDLE_TABLE ht)
{ {
PUSER_HANDLE_ENTRY entry; PUSER_HANDLE_ENTRY entry;
PPROCESSINFO ppi = PsGetCurrentProcessWin32Process();
DPRINT("handles used %i\n",gpsi->cHandleEntries); DPRINT("handles used %i\n",gpsi->cHandleEntries);
if (ht->freelist) if (ht->freelist)
@ -63,6 +63,7 @@ __inline static PUSER_HANDLE_ENTRY alloc_user_entry(PUSER_HANDLE_TABLE ht)
ht->freelist = entry->ptr; ht->freelist = entry->ptr;
gpsi->cHandleEntries++; gpsi->cHandleEntries++;
ppi->UserHandleCount++;
return entry; return entry;
} }
@ -132,6 +133,7 @@ __inline static PUSER_HANDLE_ENTRY alloc_user_entry(PUSER_HANDLE_TABLE ht)
entry->generation = 1; entry->generation = 1;
gpsi->cHandleEntries++; gpsi->cHandleEntries++;
ppi->UserHandleCount++;
return entry; return entry;
} }
@ -147,6 +149,7 @@ VOID UserInitHandleTable(PUSER_HANDLE_TABLE ht, PVOID mem, ULONG bytes)
__inline static void *free_user_entry(PUSER_HANDLE_TABLE ht, PUSER_HANDLE_ENTRY entry) __inline static void *free_user_entry(PUSER_HANDLE_TABLE ht, PUSER_HANDLE_ENTRY entry)
{ {
PPROCESSINFO ppi = PsGetCurrentProcessWin32Process();
void *ret; void *ret;
ret = entry->ptr; ret = entry->ptr;
entry->ptr = ht->freelist; entry->ptr = ht->freelist;
@ -156,6 +159,7 @@ __inline static void *free_user_entry(PUSER_HANDLE_TABLE ht, PUSER_HANDLE_ENTRY
ht->freelist = entry; ht->freelist = entry;
gpsi->cHandleEntries--; gpsi->cHandleEntries--;
ppi->UserHandleCount--;
return ret; return ret;
} }