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 ?