STANDARD_RIGHTS_EXECUTE|SYMBOLIC_LINK_QUERY,
SYMBOLIC_LINK_ALL_ACCESS};
-#define TAG_SYMLINK_TTARGET TAG('S', 'Y', 'T', 'T')
-#define TAG_SYMLINK_TARGET TAG('S', 'Y', 'M', 'T')
-
-
/* FUNCTIONS ****************************************************************/
/**********************************************************************
*/
VOID
INIT_FUNCTION
+NTAPI
ObInitSymbolicLinkImplementation (VOID)
{
UNICODE_STRING Name;
OBJECT_TYPE_INITIALIZER ObjectTypeInitializer;
- DPRINT1("Creating SymLink Object Type\n");
+ DPRINT("Creating SymLink Object Type\n");
/* Initialize the Directory type */
RtlZeroMemory(&ObjectTypeInitializer, sizeof(ObjectTypeInitializer));
{
_SEH_TRY
{
- ProbeForWrite(LinkHandle,
- sizeof(HANDLE),
- sizeof(ULONG));
+ ProbeForWriteHandle(LinkHandle);
}
_SEH_HANDLE
{
}
}
- Status = RtlCaptureUnicodeString(&CapturedLinkTarget,
- PreviousMode,
- PagedPool,
- FALSE,
- LinkTarget);
+ Status = ProbeAndCaptureUnicodeString(&CapturedLinkTarget,
+ PreviousMode,
+ LinkTarget);
if(!NT_SUCCESS(Status))
{
DPRINT1("NtCreateSymbolicLinkObject: Capturing the target link failed!\n");
ObDereferenceObject(SymbolicLink);
}
- RtlReleaseCapturedUnicodeString(&CapturedLinkTarget,
- PreviousMode,
- FALSE);
+ ReleaseCapturedUnicodeString(&CapturedLinkTarget,
+ PreviousMode);
return Status;
}
{
_SEH_TRY
{
- ProbeForWrite(LinkHandle,
- sizeof(HANDLE),
- sizeof(ULONG));
+ ProbeForWriteHandle(LinkHandle);
}
_SEH_HANDLE
{
if(ResultLength != NULL)
{
- ProbeForWrite(ResultLength,
- sizeof(ULONG),
- sizeof(ULONG));
+ ProbeForWriteUlong(ResultLength);
}
}
_SEH_HANDLE