CmFcpManagerCreateSection

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

Referenced by:

CmFcManagerUpdateFeatureConfigurations
CmFcManagerUpdateFeatureUsageSubscriptions
CmFcpManagerCreateSectionFromBuffer