SiOpenArcNameObject
INT64 __stdcall SiOpenArcNameObject(WCHAR *ArcPath, PVOID *ObjectHandle){
WCHAR v2;
NTSTATUS v4;
unsigned int v5;
struct _UNICODE_STRING DestinationString;
struct _OBJECT_ATTRIBUTES ObjectAttributes;
void *LinkHandle;
*(&ObjectAttributes.Length + 1) = 0;
*(&ObjectAttributes.Attributes + 1) = 0;
LinkHandle = 0i64;
DestinationString = 0i64;
RtlInitUnicodeString(&DestinationString, ArcPath, v2);
ObjectAttributes.RootDirectory = 0i64;
ObjectAttributes.ObjectName = &DestinationString;
ObjectAttributes.Length = 48;
ObjectAttributes.Attributes = 576;
*(_OWORD *)&ObjectAttributes.SecurityDescriptor = 0i64;
v4 = ZwOpenSymbolicLinkObject(&LinkHandle, 0x20001ui64, &ObjectAttributes);
v5 = v4;
if( v4 < 0 )
{
if( v4 != -1073741801 && v4 != -1073741670 )
return(unsigned int)-1073740718;
}
else
{
*ObjectHandle = LinkHandle;
}
return v5;
}Referenced by:
SiGetBiosSystemDisk