[PATCH 2/2] kernel32: Implement a few more classes in GetFileInformationByHandleEx

Martin Storsjö martin at martin.st
Tue May 12 09:17:44 CDT 2015


On Thu, 7 May 2015, Martin Storsjo wrote:

> ---
> dlls/kernel32/file.c | 22 +++++++++++++++++++---
> 1 file changed, 19 insertions(+), 3 deletions(-)
>
> diff --git a/dlls/kernel32/file.c b/dlls/kernel32/file.c
> index 006db1c..9bf318e 100644
> --- a/dlls/kernel32/file.c
> +++ b/dlls/kernel32/file.c
> @@ -23,6 +23,7 @@
> #include "config.h"
> #include "wine/port.h"
>
> +#include <assert.h>
> #include <stdarg.h>
> #include <stdio.h>
> #include <errno.h>
> @@ -894,11 +895,10 @@ BOOL WINAPI GetFileInformationByHandleEx( HANDLE handle, FILE_INFO_BY_HANDLE_CLA
> {
>     NTSTATUS status;
>     IO_STATUS_BLOCK io;
> +    FILE_INFORMATION_CLASS nt_class;
>
>     switch (class)
>     {
> -    case FileBasicInfo:
> -    case FileStandardInfo:
>     case FileRenameInfo:
>     case FileDispositionInfo:
>     case FileAllocationInfo:
> @@ -919,8 +919,24 @@ BOOL WINAPI GetFileInformationByHandleEx( HANDLE handle, FILE_INFO_BY_HANDLE_CLA
>         SetLastError( ERROR_CALL_NOT_IMPLEMENTED );
>         return FALSE;
>
> +    case FileBasicInfo:
> +    case FileStandardInfo:
>     case FileNameInfo:
> -        status = NtQueryInformationFile( handle, &io, info, size, FileNameInformation );
> +        switch (class) {
> +        case FileBasicInfo:
> +            nt_class = FileBasicInformation;
> +            break;
> +        case FileStandardInfo:
> +            nt_class = FileStandardInformation;
> +            break;
> +        case FileNameInfo:
> +            nt_class = FileNameInformation;
> +            break;
> +        default:
> +            assert(0);
> +            break;
> +        }
> +        status = NtQueryInformationFile( handle, &io, info, size, nt_class );
>         if (status != STATUS_SUCCESS)
>         {
>             SetLastError( RtlNtStatusToDosError( status ) );
> -- 
> 1.8.1.2

Is there anything concrete that needs to be fixed in this (and the other 
kernel32 patch in the same thread) to be acceptable?

// Martin



More information about the wine-devel mailing list