NtOpenSymbolicLinkObject

NTSTATUS __stdcall NtOpenSymbolicLinkObject(
        PVOID *LinkHandle,
        UINT64 DesiredAccess,
        _OBJECT_ATTRIBUTES *ObjectAttributes){
  int v4; 
  PVOID *v5; 
  CHAR v6; 
  _OBJECT_TYPE *v7; 
  _EJOB *Silo; 
  NTSTATUS result; 
  UINT64 DesiredAccessa; 
  PVOID Handle; 
  v4 = DesiredAccess;
  v5 = LinkHandle;
  Handle = 0i64;
  v6 = *((_BYTE *)KeGetCurrentThread() + 562);
  if( v6 )
  {
    if( (unsigned __int64)LinkHandle >= 0x7FFFFFFF0000i64 )
      LinkHandle = (PVOID *)0x7FFFFFFF0000i64;
    *LinkHandle = *LinkHandle;
  }
  v7 = ObpSymbolicLinkObjectType;
  Silo = PsGetCurrentSilo();
  LODWORD(DesiredAccessa) = v4;
  result = ObOpenObjectByNameEx(ObjectAttributes, v7, v6, 0i64, DesiredAccessa, 0i64, Silo, &Handle);
  *v5 = Handle;
  return result;
}

Referenced by:

AdtpInitializeDriveLetters
IopReassignSystemRoot