/* * Copyright 1999, 2000 Juergen Schmied * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include "wine/debug.h" #include "ntdll_misc.h" #include "ntddk.h" WINE_DEFAULT_DEBUG_CHANNEL(ntdll); /************************************************************************** * NtOpenFile [NTDLL.@] * ZwOpenFile [NTDLL.@] * FUNCTION: Opens a file * ARGUMENTS: * FileHandle Variable that receives the file handle on return * DesiredAccess Access desired by the caller to the file * ObjectAttributes Structue describing the file to be opened * IoStatusBlock Receives details about the result of the operation * ShareAccess Type of shared access the caller requires * OpenOptions Options for the file open */ NTSTATUS WINAPI NtOpenFile( OUT PHANDLE FileHandle, ACCESS_MASK DesiredAccess, POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK IoStatusBlock, ULONG ShareAccess, ULONG OpenOptions) { FIXME("(%p,0x%08lx,%p,%p,0x%08lx,0x%08lx) stub\n", FileHandle, DesiredAccess, ObjectAttributes, IoStatusBlock, ShareAccess, OpenOptions); dump_ObjectAttributes (ObjectAttributes); return 0; } /************************************************************************** * NtCreateFile [NTDLL.@] * ZwCreateFile [NTDLL.@] * FUNCTION: Either causes a new file or directory to be created, or it opens * an existing file, device, directory or volume, giving the caller a handle * for the file object. This handle can be used by subsequent calls to * manipulate data within the file or the file object's state of attributes. * ARGUMENTS: * FileHandle Points to a variable which receives the file handle on return * DesiredAccess Desired access to the file * ObjectAttributes Structure describing the file * IoStatusBlock Receives information about the operation on return * AllocationSize Initial size of the file in bytes * FileAttributes Attributes to create the file with * ShareAccess Type of shared access the caller would like to the file * CreateDisposition Specifies what to do, depending on whether the file already exists * CreateOptions Options for creating a new file * EaBuffer Undocumented * EaLength Undocumented */ NTSTATUS WINAPI NtCreateFile( OUT PHANDLE FileHandle, ACCESS_MASK DesiredAccess, POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK IoStatusBlock, PLARGE_INTEGER AllocateSize, ULONG FileAttributes, ULONG ShareAccess, ULONG CreateDisposition, ULONG CreateOptions, PVOID EaBuffer, ULONG EaLength) { FIXME("(%p,0x%08lx,%p,%p,%p,0x%08lx,0x%08lx,0x%08lx,0x%08lx,%p,0x%08lx) stub\n", FileHandle,DesiredAccess,ObjectAttributes, IoStatusBlock,AllocateSize,FileAttributes, ShareAccess,CreateDisposition,CreateOptions,EaBuffer,EaLength); dump_ObjectAttributes (ObjectAttributes); return 0; } /****************************************************************************** * NtReadFile [NTDLL.@] * ZwReadFile [NTDLL.@] * * Parameters * HANDLE32 FileHandle * HANDLE32 Event OPTIONAL * PIO_APC_ROUTINE ApcRoutine OPTIONAL * PVOID ApcContext OPTIONAL * PIO_STATUS_BLOCK IoStatusBlock * PVOID Buffer * ULONG Length * PLARGE_INTEGER ByteOffset OPTIONAL * PULONG Key OPTIONAL */ NTSTATUS WINAPI NtReadFile ( HANDLE FileHandle, HANDLE EventHandle, PIO_APC_ROUTINE ApcRoutine, PVOID ApcContext, PIO_STATUS_BLOCK IoStatusBlock, PVOID Buffer, ULONG Length, PLARGE_INTEGER ByteOffset, PULONG Key) { FIXME("(0x%08x,0x%08x,%p,%p,%p,%p,0x%08lx,%p,%p),stub!\n", FileHandle,EventHandle,ApcRoutine,ApcContext,IoStatusBlock,Buffer,Length,ByteOffset,Key); return 0; } /************************************************************************** * NtDeviceIoControlFile [NTDLL.@] * ZwDeviceIoControlFile [NTDLL.@] */ NTSTATUS WINAPI NtDeviceIoControlFile( IN HANDLE DeviceHandle, IN HANDLE Event OPTIONAL, IN PIO_APC_ROUTINE UserApcRoutine OPTIONAL, IN PVOID UserApcContext OPTIONAL, OUT PIO_STATUS_BLOCK IoStatusBlock, IN ULONG IoControlCode, IN PVOID InputBuffer, IN ULONG InputBufferSize, OUT PVOID OutputBuffer, IN ULONG OutputBufferSize) { FIXME("(0x%08x,0x%08x,%p,%p,%p,0x%08lx,%p,0x%08lx,%p,0x%08lx): empty stub\n", DeviceHandle, Event, UserApcRoutine, UserApcContext, IoStatusBlock, IoControlCode, InputBuffer, InputBufferSize, OutputBuffer, OutputBufferSize); return 0; } /****************************************************************************** * NtFsControlFile [NTDLL.@] * ZwFsControlFile [NTDLL.@] */ NTSTATUS WINAPI NtFsControlFile( IN HANDLE DeviceHandle, IN HANDLE Event OPTIONAL, IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, IN PVOID ApcContext OPTIONAL, OUT PIO_STATUS_BLOCK IoStatusBlock, IN ULONG IoControlCode, IN PVOID InputBuffer, IN ULONG InputBufferSize, OUT PVOID OutputBuffer, IN ULONG OutputBufferSize) { FIXME("(0x%08x,0x%08x,%p,%p,%p,0x%08lx,%p,0x%08lx,%p,0x%08lx): stub\n", DeviceHandle,Event,ApcRoutine,ApcContext,IoStatusBlock,IoControlCode, InputBuffer,InputBufferSize,OutputBuffer,OutputBufferSize); return 0; } /****************************************************************************** * NtSetVolumeInformationFile [NTDLL.@] * ZwSetVolumeInformationFile [NTDLL.@] */ NTSTATUS WINAPI NtSetVolumeInformationFile( IN HANDLE FileHandle, PIO_STATUS_BLOCK IoStatusBlock, PVOID FsInformation, ULONG Length, FS_INFORMATION_CLASS FsInformationClass) { FIXME("(0x%08x,%p,%p,0x%08lx,0x%08x) stub\n", FileHandle,IoStatusBlock,FsInformation,Length,FsInformationClass); return 0; } /****************************************************************************** * NtQueryInformationFile [NTDLL.@] * ZwQueryInformationFile [NTDLL.@] */ NTSTATUS WINAPI NtQueryInformationFile( HANDLE FileHandle, PIO_STATUS_BLOCK IoStatusBlock, PVOID FileInformation, ULONG Length, FILE_INFORMATION_CLASS FileInformationClass) { FIXME("(0x%08x,%p,%p,0x%08lx,0x%08x),stub!\n", FileHandle,IoStatusBlock,FileInformation,Length,FileInformationClass); return 0; } /****************************************************************************** * NtSetInformationFile [NTDLL.@] * ZwSetInformationFile [NTDLL.@] */ NTSTATUS WINAPI NtSetInformationFile( HANDLE FileHandle, PIO_STATUS_BLOCK IoStatusBlock, PVOID FileInformation, ULONG Length, FILE_INFORMATION_CLASS FileInformationClass) { FIXME("(0x%08x,%p,%p,0x%08lx,0x%08x)\n", FileHandle,IoStatusBlock,FileInformation,Length,FileInformationClass); return 0; } /****************************************************************************** * NtQueryDirectoryFile [NTDLL.@] * ZwQueryDirectoryFile [NTDLL.@] * ZwQueryDirectoryFile */ NTSTATUS WINAPI NtQueryDirectoryFile( IN HANDLE FileHandle, IN HANDLE Event OPTIONAL, IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, IN PVOID ApcContext OPTIONAL, OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PVOID FileInformation, IN ULONG Length, IN FILE_INFORMATION_CLASS FileInformationClass, IN BOOLEAN ReturnSingleEntry, IN PUNICODE_STRING FileName OPTIONAL, IN BOOLEAN RestartScan) { FIXME("(0x%08x 0x%08x %p %p %p %p 0x%08lx 0x%08x 0x%08x %p 0x%08x\n", FileHandle, Event, ApcRoutine, ApcContext, IoStatusBlock, FileInformation, Length, FileInformationClass, ReturnSingleEntry, debugstr_us(FileName),RestartScan); return 0; } /****************************************************************************** * NtQueryVolumeInformationFile [NTDLL.@] * ZwQueryVolumeInformationFile [NTDLL.@] */ NTSTATUS WINAPI NtQueryVolumeInformationFile ( IN HANDLE FileHandle, OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PVOID FSInformation, IN ULONG Length, IN FS_INFORMATION_CLASS FSInformationClass) { FIXME("(0x%08x %p %p 0x%08lx 0x%08x) stub!\n", FileHandle, IoStatusBlock, FSInformation, Length, FSInformationClass); return STATUS_SUCCESS; }