CmFcpManagerCreateSection
__int64 __fastcall CmFcpManagerCreateSection(_LARGE_INTEGER a1, __int64 a2, void *a3, _QWORD *a4){
NTSTATUS Section;
PVOID *Object;
INT64 v10;
_LARGE_INTEGER MaximumSize;
_OBJECT_ATTRIBUTES ObjectAttributes;
VOID *SectionHandle;
PVOID v14;
memset(&ObjectAttributes.Length + 1, 0, 20);
*(&ObjectAttributes.Attributes + 1) = 0;
SectionHandle = 0i64;
ObjectAttributes.SecurityQualityOfService = 0i64;
ObjectAttributes.SecurityDescriptor = a3;
MaximumSize = a1;
LODWORD(v10) = 0x8000000;
LODWORD(Object) = 4;
ObjectAttributes.Length = 48;
ObjectAttributes.Attributes = 512;
Section = ZwCreateSection(
(UINT64)&SectionHandle,
6ui64,
(INT64)&ObjectAttributes,
(INT64 *)&MaximumSize,
(INT64)Object,
v10,
0i64);
if( Section >= 0 )
{
v14 = 0i64;
Section = ObReferenceObjectByHandle(SectionHandle, 6ui64, MmSectionObjectType, 0, &v14, 0i64);
if( Section >= 0 )
{
Section = 0;
a4[1] = v14;
*a4 = a2;
a4[2] = a1.QuadPart;
}
}
if( SectionHandle )
ZwClose((_HANDLE)SectionHandle);
return(unsigned int)Section;
}Referenced by:
CmFcManagerUpdateFeatureConfigurations
CmFcManagerUpdateFeatureUsageSubscriptions
CmFcpManagerCreateSectionFromBuffer