174{
177 struct
178 {
179 WCHAR DirectoryName[
sizeof "\\ObjectTypes\\" - 1];
185
187
189 {
194
200
201
202
203
206
214
215
218 {
219
220
225 ok(ObjectTypeHandle !=
NULL,
"ObjectTypeHandle = NULL\n");
227 {
231 {
239 }
241 }
242 }
243
246 }
247}
static OBJECT_TYPE_INITIALIZER ObTypeInitializer[NUM_OBTYPES]
static VOID NTAPI CloseProc(IN PEPROCESS Process, IN PVOID Object, IN ACCESS_MASK GrantedAccess, IN ULONG ProcessHandleCount, IN ULONG SystemHandleCount)
static NTSTATUS NTAPI ParseProc(IN PVOID ParseObject, IN PVOID ObjectType, IN OUT PACCESS_STATE AccessState, IN KPROCESSOR_MODE AccessMode, IN ULONG Attributes, IN OUT PUNICODE_STRING CompleteName, IN OUT PUNICODE_STRING RemainingName, IN OUT PVOID Context OPTIONAL, IN PSECURITY_QUALITY_OF_SERVICE SecurityQos OPTIONAL, OUT PVOID *Object)
static NTSTATUS NTAPI QueryNameProc(IN PVOID Object, IN BOOLEAN HasObjectName, OUT POBJECT_NAME_INFORMATION ObjectNameInfo, IN ULONG Length, OUT PULONG ReturnLength, IN KPROCESSOR_MODE AccessMode)
static UNICODE_STRING ObTypeName[NUM_OBTYPES]
static NTSTATUS NTAPI OpenProc(IN OB_OPEN_REASON OpenReason, IN PEPROCESS Process, IN PVOID Object, IN ACCESS_MASK GrantedAccess, IN ULONG HandleCount)
static VOID NTAPI DeleteProc(IN PVOID Object)
static VOID NTAPI DumpProc(IN PVOID Object, IN POB_DUMP_CONTROL DumpControl)
static BOOLEAN NTAPI OkayToCloseProc(IN PEPROCESS Process OPTIONAL, IN PVOID Object, IN HANDLE Handle, IN KPROCESSOR_MODE AccessMode)
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
#define NT_SUCCESS(StatCode)
#define OBJECT_TYPE_ALL_ACCESS
NTSTATUS NTAPI ObOpenObjectByName(IN POBJECT_ATTRIBUTES ObjectAttributes, IN POBJECT_TYPE ObjectType, IN KPROCESSOR_MODE AccessMode, IN PACCESS_STATE PassedAccessState, IN ACCESS_MASK DesiredAccess, IN OUT PVOID ParseContext, OUT PHANDLE Handle)
NTSTATUS NTAPI ObCreateObjectType(IN PUNICODE_STRING TypeName, IN POBJECT_TYPE_INITIALIZER ObjectTypeInitializer, IN PVOID Reserved, OUT POBJECT_TYPE *ObjectType)
NTSTATUS NTAPI ObReferenceObjectByHandle(IN HANDLE Handle, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE ObjectType, IN KPROCESSOR_MODE AccessMode, OUT PVOID *Object, OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL)
OB_CLOSE_METHOD CloseProcedure
OB_DELETE_METHOD DeleteProcedure
OB_OPEN_METHOD OpenProcedure
BOOLEAN MaintainHandleCount
OB_QUERYNAME_METHOD QueryNameProcedure
OB_PARSE_METHOD ParseProcedure
OB_OKAYTOCLOSE_METHOD OkayToCloseProcedure
OB_DUMP_METHOD DumpProcedure
OBJECT_TYPE_INITIALIZER TypeInfo
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
#define STATUS_INVALID_PARAMETER
#define STATUS_OBJECT_NAME_COLLISION