CmAppendDeclarativeDefaultFilters

NTSTATUS __stdcall CmAppendDeclarativeDefaultFilters(
        INT64 a1,
        INT64 a2,
        const WCHAR *a3,
        INT64 a4,
        UINT64 pszDest,
        INT64 a6,
        INT64 a7){
  __int64 v7; 
  int v8; 
  int v9; 
  __int64 v13; 
  int v14; 
  char v15; 
  NTSTATUS appended; 
  NTSTATUS v17; 
  UINT64 pulSize; 

  v7 = pszDest;
  v8 = 0;
  v9 = a6;
  LODWORD(pulSize) = 0;
  v13 = -1i64;
  do
    ++v13;
  while( a3[v13] );
  v14 = 2 * v13 + 2;
  if( pszDest )
  {
    LODWORD(pulSize) = a6;
    v15 = PnpMultiSzAppend((WCHAR *)pszDest, &pulSize, (WCHAR *)a3);
    v7 = pszDest & -(__int64)(v15 != 0);
    v9 -= v14;
  }
  appended = CmAppendDeclarativeFilterLevel(a1, (VOID *)a2, a3, v7, v9, &pulSize);
  v17 = appended;
  if( appended == -1073741772 )
  {
    v17 = 0;
LABEL_10:
    *(_DWORD *)a7 = v8 + v14;
    return v17;
  }
  if( (int)(appended + 0x80000000) < 0 || appended == -1073741789 )
  {
    v8 = pulSize;
    goto LABEL_10;
  }
  return v17;
}

Referenced by:

CmGetDeclarativeFilterList