ntoskrnl.exe: Export object type values.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
stable
Jacek Caban 2019-02-26 13:38:58 +01:00 committed by Alexandre Julliard
parent 99876873b8
commit 38eebddc1d
4 changed files with 90 additions and 8 deletions

View File

@ -251,6 +251,16 @@ static HANDLE get_device_manager(void)
return ret;
}
static const WCHAR file_type_name[] = {'F','i','l','e',0};
static struct _OBJECT_TYPE file_type = {
file_type_name,
};
POBJECT_TYPE IoFileObjectType = &file_type;
/* transfer result of IRP back to wineserver */
static NTSTATUS WINAPI dispatch_irp_completion( DEVICE_OBJECT *device, IRP *irp, void *context )
{
@ -1090,6 +1100,16 @@ static NTSTATUS WINAPI unhandled_irp( DEVICE_OBJECT *device, IRP *irp )
}
static const WCHAR driver_type_name[] = {'D','r','i','v','e','r',0};
static struct _OBJECT_TYPE driver_type =
{
driver_type_name,
};
POBJECT_TYPE IoDriverObjectType = &driver_type;
/***********************************************************************
* IoCreateDriver (NTOSKRNL.EXE.@)
*/
@ -1159,6 +1179,16 @@ void WINAPI IoDeleteDriver( DRIVER_OBJECT *driver_object )
}
static const WCHAR device_type_name[] = {'D','e','v','i','c','e',0};
static struct _OBJECT_TYPE device_type =
{
device_type_name
};
POBJECT_TYPE IoDeviceObjectType = &device_type;
/***********************************************************************
* IoCreateDevice (NTOSKRNL.EXE.@)
*/
@ -2169,6 +2199,17 @@ NTSTATUS WINAPI FsRtlRegisterUncProvider(PHANDLE MupHandle, PUNICODE_STRING Redi
return STATUS_NOT_IMPLEMENTED;
}
static const WCHAR process_type_name[] = {'P','r','o','c','e','s','s',0};
static struct _OBJECT_TYPE process_type =
{
process_type_name
};
POBJECT_TYPE PsProcessType = &process_type;
/***********************************************************************
* IoGetCurrentProcess / PsGetCurrentProcess (NTOSKRNL.EXE.@)
*/
@ -2178,6 +2219,17 @@ PEPROCESS WINAPI IoGetCurrentProcess(void)
return NULL;
}
static const WCHAR thread_type_name[] = {'T','h','r','e','a','d',0};
static struct _OBJECT_TYPE thread_type =
{
thread_type_name,
};
POBJECT_TYPE PsThreadType = &thread_type;
/***********************************************************************
* KeGetCurrentThread / PsGetCurrentThread (NTOSKRNL.EXE.@)
*/
@ -3983,3 +4035,12 @@ void WINAPI KeLeaveGuardedRegion(void)
{
FIXME("\n");
}
static const WCHAR token_type_name[] = {'T','o','k','e','n',0};
static struct _OBJECT_TYPE token_type =
{
token_type_name
};
POBJECT_TYPE SeTokenObjectType = &token_type;

View File

@ -138,7 +138,7 @@
@ stub ExDesktopObjectType
@ stub ExDisableResourceBoostLite
@ stub ExEnumHandleTable
@ stub ExEventObjectType
@ extern ExEventObjectType
@ stub ExExtendZone
@ stdcall -norelay ExfUnblockPushLock(ptr ptr)
@ stdcall ExFreePool(ptr)
@ -179,7 +179,7 @@
@ stub ExRegisterCallback
@ stub ExReinitializeResourceLite
@ stdcall ExReleaseResourceForThreadLite(ptr long)
@ stub ExSemaphoreObjectType
@ extern ExSemaphoreObjectType
@ stub ExSetResourceOwnerPointer
@ stub ExSetTimerResolution
@ stub ExSystemExceptionFilter
@ -369,13 +369,13 @@
@ stub IoDetachDevice
@ stub IoDeviceHandlerObjectSize
@ stub IoDeviceHandlerObjectType
@ stub IoDeviceObjectType
@ extern IoDeviceObjectType
@ stub IoDisconnectInterrupt
@ stub IoDriverObjectType
@ extern IoDriverObjectType
@ stub IoEnqueueIrp
@ stub IoEnumerateDeviceObjectList
@ stub IoFastQueryNetworkAttributes
@ stub IoFileObjectType
@ extern IoFileObjectType
@ stub IoForwardAndCatchIrp
@ stub IoForwardIrpSynchronously
@ stub IoFreeController
@ -914,7 +914,7 @@
@ stdcall PsLookupProcessByProcessId(ptr ptr)
@ stub PsLookupProcessThreadByCid
@ stub PsLookupThreadByThreadId
@ stub PsProcessType
@ extern PsProcessType
@ stub PsReferenceImpersonationToken
@ stub PsReferencePrimaryToken
@ stdcall PsReferenceProcessFilePointer(ptr ptr)
@ -942,7 +942,7 @@
@ stub PsSetThreadHardErrorsAreDisabled
@ stub PsSetThreadWin32Thread
@ stdcall PsTerminateSystemThread(long)
@ stub PsThreadType
@ extern PsThreadType
@ stdcall READ_REGISTER_BUFFER_UCHAR(ptr ptr long)
@ stub READ_REGISTER_BUFFER_ULONG
@ stub READ_REGISTER_BUFFER_USHORT
@ -1275,7 +1275,7 @@
@ stub SeTokenIsAdmin
@ stub SeTokenIsRestricted
@ stub SeTokenIsWriteRestricted
@ stub SeTokenObjectType
@ extern SeTokenObjectType
@ stub SeTokenType
@ stub SeUnlockSubjectContext
@ stub SeUnregisterLogonSessionTerminatedRoutine

View File

@ -21,6 +21,10 @@
#ifndef __WINE_NTOSKRNL_PRIVATE_H
#define __WINE_NTOSKRNL_PRIVATE_H
struct _OBJECT_TYPE {
const WCHAR *name; /* object type name used for type validation */
};
#ifdef __i386__
#define DEFINE_FASTCALL1_ENTRYPOINT( name ) \
__ASM_STDCALL_FUNC( name, 4, \

View File

@ -186,6 +186,14 @@ void WINAPI KeInitializeEvent( PRKEVENT event, EVENT_TYPE type, BOOLEAN state )
event->Header.WaitListHead.Flink = NULL;
}
static const WCHAR event_type_name[] = {'E','v','e','n','t',0};
static struct _OBJECT_TYPE event_type = {
event_type_name,
};
POBJECT_TYPE ExEventObjectType = &event_type;
/***********************************************************************
* KeSetEvent (NTOSKRNL.EXE.@)
*/
@ -267,6 +275,15 @@ LONG WINAPI KeReleaseSemaphore( PRKSEMAPHORE semaphore, KPRIORITY increment,
return ret;
}
static const WCHAR semaphore_type_name[] = {'S','e','m','a','p','h','o','r','e',0};
static struct _OBJECT_TYPE semaphore_type =
{
semaphore_type_name
};
POBJECT_TYPE ExSemaphoreObjectType = &semaphore_type;
/***********************************************************************
* KeInitializeMutex (NTOSKRNL.EXE.@)
*/