ntoskrnl.exe: Implement IoIs32bitProcess().

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49088
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zebediah Figura 2020-05-03 11:22:02 -05:00 committed by Alexandre Julliard
parent 74f820fccc
commit 0e09d5ea74
4 changed files with 17 additions and 0 deletions

View File

@ -2196,6 +2196,7 @@ static void *create_process_object( HANDLE handle )
process->header.Type = 3;
process->header.WaitListHead.Blink = INVALID_HANDLE_VALUE; /* mark as kernel object */
NtQueryInformationProcess( handle, ProcessBasicInformation, &process->info, sizeof(process->info), NULL );
IsWow64Process( handle, &process->wow64 );
return process;
}
@ -3935,6 +3936,17 @@ PEPROCESS WINAPI IoGetRequestorProcess(IRP *irp)
return irp->Tail.Overlay.Thread->kthread.process;
}
#ifdef _WIN64
/***********************************************************************
* IoIs32bitProcess (NTOSKRNL.EXE.@)
*/
BOOLEAN WINAPI IoIs32bitProcess(IRP *irp)
{
TRACE("irp %p.\n", irp);
return irp->Tail.Overlay.Thread->kthread.process->wow64;
}
#endif
/***********************************************************************
* RtlIsNtDdiVersionAvailable (NTOSKRNL.EXE.@)
*/

View File

@ -416,6 +416,7 @@
@ stdcall IoInitializeTimer(ptr ptr ptr)
@ stdcall IoInvalidateDeviceRelations(ptr long)
@ stub IoInvalidateDeviceState
@ stdcall -arch=win64 IoIs32bitProcess(ptr)
@ stub IoIsFileOriginRemote
@ stub IoIsOperationSynchronous
@ stub IoIsSystemThread

View File

@ -40,6 +40,7 @@ struct _EPROCESS
{
DISPATCHER_HEADER header;
PROCESS_BASIC_INFORMATION info;
BOOL wow64;
};
struct _KTHREAD

View File

@ -1608,6 +1608,9 @@ void WINAPI IoGetStackLimits(ULONG_PTR*,ULONG_PTR*);
void WINAPI IoInitializeIrp(IRP*,USHORT,CCHAR);
VOID WINAPI IoInitializeRemoveLockEx(PIO_REMOVE_LOCK,ULONG,ULONG,ULONG,ULONG);
void WINAPI IoInvalidateDeviceRelations(PDEVICE_OBJECT,DEVICE_RELATION_TYPE);
#ifdef _WIN64
BOOLEAN WINAPI IoIs32bitProcess(IRP*);
#endif
NTSTATUS WINAPI IoOpenDeviceRegistryKey(DEVICE_OBJECT*,ULONG,ACCESS_MASK,HANDLE*);
void WINAPI IoQueueWorkItem(PIO_WORKITEM,PIO_WORKITEM_ROUTINE,WORK_QUEUE_TYPE,void*);
NTSTATUS WINAPI IoRegisterDeviceInterface(PDEVICE_OBJECT,const GUID*,PUNICODE_STRING,PUNICODE_STRING);