[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