2012/10/5 Dmitry Timoshkov <dmitry@baikal.ru>
Christian Costa <titan.costa@gmail.com> wrote:

> +EPROCESS process_info;
> +
> �#ifdef __i386__
> �#define DEFINE_FASTCALL1_ENTRYPOINT( name ) \
> � � �__ASM_STDCALL_FUNC( name, 4, \
> @@ -1200,8 +1203,11 @@ NTSTATUS WINAPI FsRtlRegisterUncProvider(PHANDLE MupHandle, PUNICODE_STRING Redi
> � */
> �PEPROCESS WINAPI IoGetCurrentProcess(void)
> �{
> - � �FIXME("() stub\n");
> - � �return NULL;
> + � �FIXME("(): partial stub\n");
> +
> + � �process_info.UniqueProcessId = (PVOID)PsGetCurrentProcessId();
> +
> + � �return &process_info;
> �}

Why do you think that returning the structure filled with garbage is better
than returning NULL?


It is not supposed to return NULL afaik but a valid pointer as you said before.
The structure is zeroed except UniqueProcessId I need for MDL functions.
MDL struct have a PEPROCESS field and I would like to do things in a clean way.
What's the problem with that ?