+++ /dev/null
-
-#include "k32_vista.h"
-
-#include <ndk/rtlfuncs.h>
-#include <ndk/iofuncs.h>
-
-/* Taken from Wine kernel32/file.c */
-
-/***********************************************************************
-* GetFileInformationByHandleEx (KERNEL32.@)
-*/
-BOOL WINAPI GetFileInformationByHandleEx( HANDLE handle, FILE_INFO_BY_HANDLE_CLASS class,
- LPVOID info, DWORD size )
-{
- NTSTATUS status;
- IO_STATUS_BLOCK io;
-
- switch (class)
- {
- case FileStreamInfo:
- case FileCompressionInfo:
- case FileAttributeTagInfo:
- case FileRemoteProtocolInfo:
- case FileFullDirectoryInfo:
- case FileFullDirectoryRestartInfo:
- case FileStorageInfo:
- case FileAlignmentInfo:
- case FileIdInfo:
- case FileIdExtdDirectoryInfo:
- case FileIdExtdDirectoryRestartInfo:
- //FIXME( "%p, %u, %p, %u\n", handle, class, info, size );
- SetLastError( ERROR_CALL_NOT_IMPLEMENTED );
- return FALSE;
-
- case FileBasicInfo:
- status = NtQueryInformationFile( handle, &io, info, size, FileBasicInformation );
- break;
-
- case FileStandardInfo:
- status = NtQueryInformationFile( handle, &io, info, size, FileStandardInformation );
- break;
-
- case FileNameInfo:
- status = NtQueryInformationFile( handle, &io, info, size, FileNameInformation );
- break;
-
- case FileIdBothDirectoryRestartInfo:
- case FileIdBothDirectoryInfo:
- status = NtQueryDirectoryFile( handle, NULL, NULL, NULL, &io, info, size,
- FileIdBothDirectoryInformation, FALSE, NULL,
- (class == FileIdBothDirectoryRestartInfo) );
- break;
-
- case FileRenameInfo:
- case FileDispositionInfo:
- case FileAllocationInfo:
- case FileIoPriorityHintInfo:
- case FileEndOfFileInfo:
- default:
- SetLastError( ERROR_INVALID_PARAMETER );
- return FALSE;
- }
-
- if (status != STATUS_SUCCESS)
- {
- SetLastError( RtlNtStatusToDosError( status ) );
- return FALSE;
- }
- return TRUE;
-}