37 #define PH_SETTINGS_PRIVATE
51 #define ADD_SETTING_WRAPPER(Type, Name, DefaultValue) \
53 static PH_STRINGREF name = PH_STRINGREF_INIT(Name); \
54 static PH_STRINGREF defaultValue = PH_STRINGREF_INIT(DefaultValue); \
55 PhpAddSetting(Type, &name, &defaultValue); \
58 #define PhpAddStringSetting(A, B) ADD_SETTING_WRAPPER(StringSettingType, A, B)
59 #define PhpAddIntegerSetting(A, B) ADD_SETTING_WRAPPER(IntegerSettingType, A, B)
60 #define PhpAddIntegerPairSetting(A, B) ADD_SETTING_WRAPPER(IntegerPairSettingType, A, B)
234 #define UPDATE_INTEGER_CS(Name) (PhCs##Name = PhGetIntegerSetting(L#Name))
317 setting.
Name = *Name;
319 memset(&setting.
u, 0,
sizeof(setting.
u));
335 if (!Setting->u.Pointer)
385 Setting->u.Integer = (ULONG)integer;
405 Setting->u.IntegerPair.X = (
LONG)x;
406 Setting->u.IntegerPair.Y = (
LONG)y;
427 if (Setting->u.Pointer)
440 lookupSetting.
Name = *Name;
660 PhFree(Setting->Name.Buffer);
674 for (i = 0; i < PhIgnoredSettings->
Count; i++)
699 for (i = 0; i < PhIgnoredSettings->
Count; i++)
748 LARGE_INTEGER fileSize;
759 FILE_SHARE_READ | FILE_SHARE_DELETE,
778 return STATUS_FILE_CORRUPT_ERROR;
783 return STATUS_FILE_CORRUPT_ERROR;
786 currentNode = topNode->
child;
851 currentNode = currentNode->
next;
858 return STATUS_SUCCESS;
939 for (i = 0; i < PhIgnoredSettings->
Count; i++)
943 setting = PhIgnoredSettings->
Items[i];
954 ULONG indexOfFileName;
961 if (indexOfFileName != -1)
963 directoryName =
PhSubstring(fullPath, 0, indexOfFileName);
964 SHCreateDirectoryEx(NULL, directoryName->
Buffer, NULL);
992 return STATUS_SUCCESS;
1017 _In_ ULONG NumberOfSettings
1024 for (i = 0; i < NumberOfSettings; i++)