/* * Object management functions */ #include #include #include "debugtools.h" #include "ntddk.h" DEFAULT_DEBUG_CHANNEL(ntdll) /* move to somewhere */ typedef void * POBJDIR_INFORMATION; /* * Generic object functions */ /****************************************************************************** * NtQueryObject [NTDLL.161] */ NTSTATUS WINAPI NtQueryObject( IN HANDLE ObjectHandle, IN OBJECT_INFORMATION_CLASS ObjectInformationClass, OUT PVOID ObjectInformation, IN ULONG Length, OUT PULONG ResultLength) { FIXME("(0x%08x,0x%08x,%p,0x%08lx,%p): stub\n", ObjectHandle, ObjectInformationClass, ObjectInformation, Length, ResultLength); return 0; } /****************************************************************************** * NtQuerySecurityObject [NTDLL] */ NTSTATUS WINAPI NtQuerySecurityObject(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5) { FIXME("(0x%08lx,0x%08lx,0x%08lx,0x%08lx,0x%08lx) stub!\n",x1,x2,x3,x4,x5); return 0; } /****************************************************************************** * NtDuplicateObject [NTDLL] */ NTSTATUS WINAPI NtDuplicateObject( IN HANDLE SourceProcessHandle, IN PHANDLE SourceHandle, IN HANDLE TargetProcessHandle, OUT PHANDLE TargetHandle, IN ACCESS_MASK DesiredAccess, IN BOOLEAN InheritHandle, ULONG Options) { FIXME("(0x%08x,%p,0x%08x,%p,0x%08lx,0x%08x,0x%08lx) stub!\n", SourceProcessHandle,SourceHandle,TargetProcessHandle,TargetHandle, DesiredAccess,InheritHandle,Options); *TargetHandle = 0; return 0; } /************************************************************************** * NtClose [NTDLL.65] * FUNCTION: Closes a handle reference to an object * ARGUMENTS: * Handle handle to close */ NTSTATUS WINAPI NtClose( HANDLE Handle) { FIXME("(0x%08x),stub!\n",Handle); return 1; } /****************************************************************************** * NtWaitForSingleObject [NTDLL] */ NTSTATUS WINAPI NtWaitForSingleObject( IN PHANDLE Object, IN BOOLEAN Alertable, IN PLARGE_INTEGER Time) { FIXME("(%p,0x%08x,%p),stub!\n",Object,Alertable,Time); return 0; } /* * Directory functions */ /************************************************************************** * NtOpenDirectoryObject [NTDLL.124] * FUNCTION: Opens a namespace directory object * ARGUMENTS: * DirectoryHandle Variable which receives the directory handle * DesiredAccess Desired access to the directory * ObjectAttributes Structure describing the directory * RETURNS: Status */ NTSTATUS WINAPI NtOpenDirectoryObject( PHANDLE DirectoryHandle, ACCESS_MASK DesiredAccess, POBJECT_ATTRIBUTES ObjectAttributes) { FIXME("(%p,0x%08lx,%p(%s)): stub\n", DirectoryHandle, DesiredAccess, ObjectAttributes, ObjectAttributes ? debugstr_w(ObjectAttributes->ObjectName->Buffer) : NULL); return 0; } /****************************************************************************** * NtCreateDirectoryObject [NTDLL] */ NTSTATUS WINAPI NtCreateDirectoryObject( PHANDLE DirectoryHandle, ACCESS_MASK DesiredAccess, POBJECT_ATTRIBUTES ObjectAttributes) { FIXME("(%p,0x%08lx,%p(%s)),stub!\n", DirectoryHandle,DesiredAccess,ObjectAttributes, ObjectAttributes ? debugstr_w(ObjectAttributes->ObjectName->Buffer) : NULL); return 0; } /****************************************************************************** * NtQueryDirectoryObject [NTDLL.149] * FUNCTION: Reads information from a namespace directory * ARGUMENTS: * DirObjInformation Buffer to hold the data read * BufferLength Size of the buffer in bytes * GetNextIndex If TRUE then set ObjectIndex to the index of the next object * If FALSE then set ObjectIndex to the number of objects in the directory * IgnoreInputIndex If TRUE start reading at index 0 * If FALSE start reading at the index specified by object index * ObjectIndex Zero based index into the directory, interpretation depends on IgnoreInputIndex and GetNextIndex * DataWritten Caller supplied storage for the number of bytes written (or NULL) */ NTSTATUS WINAPI NtQueryDirectoryObject( IN HANDLE DirObjHandle, OUT POBJDIR_INFORMATION DirObjInformation, IN ULONG BufferLength, IN BOOLEAN GetNextIndex, IN BOOLEAN IgnoreInputIndex, IN OUT PULONG ObjectIndex, OUT PULONG DataWritten OPTIONAL) { FIXME("(0x%08x,%p,0x%08lx,0x%08x,0x%08x,%p,%p) stub\n", DirObjHandle, DirObjInformation, BufferLength, GetNextIndex, IgnoreInputIndex, ObjectIndex, DataWritten); return 0xc0000000; /* We don't have any. Whatever. (Yet.) */ } /* * Link objects */ /****************************************************************************** * NtOpenSymbolicLinkObject [NTDLL] */ NTSTATUS WINAPI NtOpenSymbolicLinkObject( OUT PHANDLE LinkHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes) { FIXME("(%p,0x%08lx,%p(%s)) stub\n", LinkHandle, DesiredAccess, ObjectAttributes, ObjectAttributes ? debugstr_w(ObjectAttributes->ObjectName->Buffer) : NULL); return 0; } /****************************************************************************** * NtCreateSymbolicLinkObject [NTDLL] */ NTSTATUS WINAPI NtCreateSymbolicLinkObject( OUT PHANDLE SymbolicLinkHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN PUNICODE_STRING Name) { FIXME("(%p,0x%08lx,%p(%s), %p) stub\n", SymbolicLinkHandle, DesiredAccess, ObjectAttributes, ObjectAttributes ? debugstr_w(ObjectAttributes->ObjectName->Buffer) : NULL, debugstr_w(Name->Buffer)); return 0; } /****************************************************************************** * NtQuerySymbolicLinkObject [NTDLL] */ NTSTATUS WINAPI NtQuerySymbolicLinkObject( IN HANDLE LinkHandle, IN OUT PUNICODE_STRING LinkTarget, OUT PULONG ReturnedLength OPTIONAL) { FIXME("(0x%08x,%p,%p) stub\n", LinkHandle, debugstr_w(LinkTarget->Buffer), ReturnedLength); return 0; }