ReactOS 0.4.17-dev-769-g1500a35
object.h
Go to the documentation of this file.
1#pragma once
2
4{
8
26
27static __inline VOID
29{
30 PTHREADINFO W32Thread;
31
33 ASSERT(W32Thread != NULL);
34 ASSERT(UserReferenceEntry != NULL);
35 UserReferenceEntry->obj = obj;
37 PushEntryList(&W32Thread->ReferencesList, &UserReferenceEntry->Entry);
38#if DBG
39 W32Thread->cRefObjectCo++;
40#endif
41}
42
43static __inline VOID
45{
46 PTHREADINFO W32Thread;
47 PSINGLE_LIST_ENTRY ReferenceEntry;
48 PUSER_REFERENCE_ENTRY UserReferenceEntry;
49
50 ASSERT(obj != NULL);
52 ASSERT(W32Thread != NULL);
53 ReferenceEntry = PopEntryList(&W32Thread->ReferencesList);
54 ASSERT(ReferenceEntry != NULL);
55 UserReferenceEntry = CONTAINING_RECORD(ReferenceEntry, USER_REFERENCE_ENTRY, Entry);
56 ASSERT(UserReferenceEntry != NULL);
57
58 ASSERT(obj == UserReferenceEntry->obj);
60#if DBG
61 W32Thread->cRefObjectCo--;
62#endif
63}
64
66
67/* EOF */
#define __inline
Definition: _wctype.cpp:15
unsigned char BOOLEAN
Definition: actypes.h:127
#define NULL
Definition: types.h:112
unsigned int BOOL
Definition: ntddk_ex.h:94
ASMGENDATA Table[]
Definition: genincdata.c:61
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLsizeiptr size
Definition: glext.h:5919
GLfloat GLfloat GLfloat GLfloat h
Definition: glext.h:7723
static const struct newhuff ht[]
Definition: huffman.h:296
enum _HANDLE_TYPE HANDLE_TYPE
#define ASSERT(a)
Definition: mode.c:44
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG _Out_writes_bytes_to_opt_ DaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ SaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ OwnerSize PSID Owner
Definition: rtlfuncs.h:1629
#define _In_
Definition: no_sal2.h:158
#define FASTCALL
Definition: nt_native.h:50
PVOID NTAPI PsGetCurrentThreadWin32Thread(VOID)
Definition: thread.c:805
PVOID UserGetObject(PUSER_HANDLE_TABLE ht, HANDLE handle, HANDLE_TYPE type)
Definition: object.c:499
BOOLEAN UserDestroyObjectsForOwner(PUSER_HANDLE_TABLE Table, PVOID Owner)
Definition: object.c:777
struct _USER_REFERENCE_ENTRY USER_REFERENCE_ENTRY
static __inline VOID UserDerefObjectCo(PVOID obj)
Definition: object.h:44
PVOID FASTCALL UserAssignmentLock(PVOID *ppvObj, PVOID pvNew)
Definition: object.c:861
static __inline VOID UserRefObjectCo(PVOID obj, PUSER_REFERENCE_ENTRY UserReferenceEntry)
Definition: object.h:28
PVOID FASTCALL UserCreateObject(PUSER_HANDLE_TABLE ht, struct _DESKTOP *pDesktop, PTHREADINFO pti, HANDLE *h, HANDLE_TYPE type, ULONG size)
PVOID FASTCALL UserReferenceObjectByHandle(HANDLE handle, HANDLE_TYPE type)
Definition: object.c:764
BOOL FASTCALL UserDeleteObject(HANDLE h, HANDLE_TYPE type)
Definition: object.c:740
PUSER_HANDLE_TABLE gHandleTable
Definition: object.c:13
BOOL FASTCALL UserObjectInDestroy(HANDLE)
Definition: object.c:707
PVOID FASTCALL ValidateHandle(HANDLE handle, HANDLE_TYPE type)
void FreeProcMarkObject(_In_ PVOID Object)
Definition: object.c:175
struct _USER_REFERENCE_ENTRY * PUSER_REFERENCE_ENTRY
BOOL FASTCALL UserCreateHandleTable(VOID)
Definition: object.c:540
BOOL FASTCALL UserDereferenceObject(PVOID obj)
Definition: object.c:647
BOOL FASTCALL UserMarkObjectDestroy(PVOID)
Definition: object.c:624
void DbgUserDumpHandleTable()
BOOL FASTCALL UserMarkHandleGranted(HANDLE)
Definition: object.c:726
PVOID FASTCALL UserAssignmentUnlock(PVOID *ppvObj)
Definition: object.c:881
PVOID UserGetObjectNoErr(PUSER_HANDLE_TABLE, HANDLE, HANDLE_TYPE)
Definition: object.c:485
VOID FASTCALL UserReferenceObject(PVOID obj)
Definition: object.c:754
Entry
Definition: section.c:5216
Definition: ntbasedef.h:640
SINGLE_LIST_ENTRY ReferencesList
Definition: win32.h:158
Definition: object.h:4
SINGLE_LIST_ENTRY Entry
Definition: object.h:5
PVOID obj
Definition: object.h:6
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260
uint32_t ULONG
Definition: typedefs.h:59
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
FORCEINLINE VOID PushEntryList(_Inout_ PSINGLE_LIST_ENTRY ListHead, _Inout_ __drv_aliasesMem PSINGLE_LIST_ENTRY Entry)
Definition: rtlfuncs.h:256
FORCEINLINE PSINGLE_LIST_ENTRY PopEntryList(_Inout_ PSINGLE_LIST_ENTRY ListHead)
Definition: rtlfuncs.h:243