mirror of
https://github.com/reactos/reactos.git
synced 2025-05-16 15:50:24 +00:00
- Moved symbolic link object type.
- Added create time and removed object attributes. svn path=/trunk/; revision=6310
This commit is contained in:
parent
6af69a6d26
commit
09bed329b8
2 changed files with 19 additions and 21 deletions
|
@ -35,6 +35,15 @@ typedef struct _DIRECTORY_OBJECT
|
|||
} DIRECTORY_OBJECT, *PDIRECTORY_OBJECT;
|
||||
|
||||
|
||||
typedef struct _SYMLINK_OBJECT
|
||||
{
|
||||
CSHORT Type;
|
||||
CSHORT Size;
|
||||
UNICODE_STRING TargetName;
|
||||
LARGE_INTEGER CreateTime;
|
||||
} SYMLINK_OBJECT, *PSYMLINK_OBJECT;
|
||||
|
||||
|
||||
typedef struct _TYPE_OBJECT
|
||||
{
|
||||
CSHORT Type;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: symlink.c,v 1.5 2003/10/12 17:05:49 hbirr Exp $
|
||||
/* $Id: symlink.c,v 1.6 2003/10/14 14:45:23 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -19,15 +19,8 @@
|
|||
#define NDEBUG
|
||||
#include <internal/debug.h>
|
||||
|
||||
/* GLOBALS ******************************************************************/
|
||||
|
||||
typedef struct
|
||||
{
|
||||
CSHORT Type;
|
||||
CSHORT Size;
|
||||
UNICODE_STRING TargetName;
|
||||
OBJECT_ATTRIBUTES Target;
|
||||
} SYMLNK_OBJECT, *PSYMLNK_OBJECT;
|
||||
/* GLOBALS ******************************************************************/
|
||||
|
||||
POBJECT_TYPE ObSymbolicLinkType = NULL;
|
||||
|
||||
|
@ -40,8 +33,8 @@ static GENERIC_MAPPING ObpSymbolicLinkMapping = {
|
|||
#define TAG_SYMLINK_TTARGET TAG('S', 'Y', 'T', 'T')
|
||||
#define TAG_SYMLINK_TARGET TAG('S', 'Y', 'M', 'T')
|
||||
|
||||
/* FUNCTIONS ****************************************************************/
|
||||
|
||||
/* FUNCTIONS ****************************************************************/
|
||||
|
||||
/**********************************************************************
|
||||
* NAME INTERNAL
|
||||
|
@ -82,7 +75,7 @@ ObpCreateSymbolicLink(PVOID Object,
|
|||
VOID STDCALL
|
||||
ObpDeleteSymbolicLink(PVOID ObjectBody)
|
||||
{
|
||||
PSYMLNK_OBJECT SymlinkObject = (PSYMLNK_OBJECT)ObjectBody;
|
||||
PSYMLINK_OBJECT SymlinkObject = (PSYMLINK_OBJECT)ObjectBody;
|
||||
|
||||
RtlFreeUnicodeString(&SymlinkObject->TargetName);
|
||||
}
|
||||
|
@ -107,7 +100,7 @@ ObpParseSymbolicLink(PVOID Object,
|
|||
PWSTR * RemainingPath,
|
||||
ULONG Attributes)
|
||||
{
|
||||
PSYMLNK_OBJECT SymlinkObject = (PSYMLNK_OBJECT) Object;
|
||||
PSYMLINK_OBJECT SymlinkObject = (PSYMLINK_OBJECT) Object;
|
||||
UNICODE_STRING TargetPath;
|
||||
|
||||
DPRINT("ObpParseSymbolicLink (RemainingPath %S)\n", *RemainingPath);
|
||||
|
@ -179,7 +172,7 @@ ObInitSymbolicLinkImplementation (VOID)
|
|||
ObSymbolicLinkType->MaxObjects = ULONG_MAX;
|
||||
ObSymbolicLinkType->MaxHandles = ULONG_MAX;
|
||||
ObSymbolicLinkType->PagedPoolCharge = 0;
|
||||
ObSymbolicLinkType->NonpagedPoolCharge = sizeof(SYMLNK_OBJECT);
|
||||
ObSymbolicLinkType->NonpagedPoolCharge = sizeof(SYMLINK_OBJECT);
|
||||
ObSymbolicLinkType->Mapping = &ObpSymbolicLinkMapping;
|
||||
ObSymbolicLinkType->Dump = NULL;
|
||||
ObSymbolicLinkType->Open = NULL;
|
||||
|
@ -218,7 +211,7 @@ NtCreateSymbolicLinkObject(OUT PHANDLE SymbolicLinkHandle,
|
|||
IN POBJECT_ATTRIBUTES ObjectAttributes,
|
||||
IN PUNICODE_STRING DeviceName)
|
||||
{
|
||||
PSYMLNK_OBJECT SymbolicLink;
|
||||
PSYMLINK_OBJECT SymbolicLink;
|
||||
NTSTATUS Status;
|
||||
|
||||
assert_irql(PASSIVE_LEVEL);
|
||||
|
@ -234,7 +227,7 @@ NtCreateSymbolicLinkObject(OUT PHANDLE SymbolicLinkHandle,
|
|||
ObjectAttributes,
|
||||
ExGetPreviousMode(),
|
||||
NULL,
|
||||
sizeof(SYMLNK_OBJECT),
|
||||
sizeof(SYMLINK_OBJECT),
|
||||
0,
|
||||
0,
|
||||
(PVOID*)&SymbolicLink);
|
||||
|
@ -267,11 +260,7 @@ NtCreateSymbolicLinkObject(OUT PHANDLE SymbolicLinkHandle,
|
|||
|
||||
DPRINT("DeviceName %S\n", SymbolicLink->TargetName.Buffer);
|
||||
|
||||
InitializeObjectAttributes(&SymbolicLink->Target,
|
||||
&SymbolicLink->TargetName,
|
||||
0,
|
||||
NULL,
|
||||
NULL);
|
||||
NtQuerySystemTime (&SymbolicLink->CreateTime);
|
||||
|
||||
DPRINT("%s() = STATUS_SUCCESS\n",__FUNCTION__);
|
||||
ObDereferenceObject(SymbolicLink);
|
||||
|
@ -329,7 +318,7 @@ NtQuerySymbolicLinkObject(IN HANDLE LinkHandle,
|
|||
IN OUT PUNICODE_STRING LinkTarget,
|
||||
OUT PULONG ReturnedLength OPTIONAL)
|
||||
{
|
||||
PSYMLNK_OBJECT SymlinkObject;
|
||||
PSYMLINK_OBJECT SymlinkObject;
|
||||
NTSTATUS Status;
|
||||
|
||||
Status = ObReferenceObjectByHandle(LinkHandle,
|
||||
|
|
Loading…
Reference in a new issue