Author: hpoussin Date: Thu Aug 30 12:38:30 2007 New Revision: 28667
URL: http://svn.reactos.org/svn/reactos?rev=28667&view=rev Log: [FORMATTING] Fix spaces/tabs mess No code change.
Modified: trunk/reactos/tools/mkhive/mkhive.c trunk/reactos/tools/mkhive/reginf.c
Modified: trunk/reactos/tools/mkhive/mkhive.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/tools/mkhive/mkhive.c?rev=2... ============================================================================== --- trunk/reactos/tools/mkhive/mkhive.c (original) +++ trunk/reactos/tools/mkhive/mkhive.c Thu Aug 30 12:38:30 2007 @@ -49,127 +49,126 @@
void usage (void) { - printf ("Usage: mkhive <srcdir> <dstdir> [addinf]\n\n"); - printf (" srcdir - inf files are read from this directory\n"); - printf (" dstdir - binary hive files are created in this directory\n"); - printf (" addinf - additional inf files with full path\n"); + printf ("Usage: mkhive <srcdir> <dstdir> [addinf]\n\n"); + printf (" srcdir - inf files are read from this directory\n"); + printf (" dstdir - binary hive files are created in this directory\n"); + printf (" addinf - additional inf files with full path\n"); }
void convert_path(char *dst, char *src) { - int i; + int i;
- i = 0; - while (src[i] != 0) - { + i = 0; + while (src[i] != 0) + { #ifdef WINDOWS_HOST - if (src[i] == '/') - { - dst[i] = '\'; + if (src[i] == '/') + { + dst[i] = '\'; + } +#else + if (src[i] == '\') + { + dst[i] = '/'; + } +#endif + else + { + dst[i] = src[i]; + } + + i++; } -#else - if (src[i] == '\') - { - dst[i] = '/'; - } -#endif - else - { - dst[i] = src[i]; - } - - i++; - } - dst[i] = 0; + dst[i] = 0; } -
int main (int argc, char *argv[]) { - char FileName[PATH_MAX]; - int Param; + char FileName[PATH_MAX]; + int Param;
- printf ("Binary hive maker\n"); + printf ("Binary hive maker\n");
- if (argc < 3) - { - usage (); - return 1; - } + if (argc < 3) + { + usage (); + return 1; + }
- RegInitializeRegistry (); + RegInitializeRegistry ();
- convert_path (FileName, argv[1]); - strcat (FileName, DIR_SEPARATOR_STRING); - strcat (FileName, "hivesys.inf"); - ImportRegistryFile (FileName); + convert_path (FileName, argv[1]); + strcat (FileName, DIR_SEPARATOR_STRING); + strcat (FileName, "hivesys.inf"); + ImportRegistryFile (FileName);
- convert_path (FileName, argv[1]); - strcat (FileName, DIR_SEPARATOR_STRING); - strcat (FileName, "hivecls.inf"); - ImportRegistryFile (FileName); + convert_path (FileName, argv[1]); + strcat (FileName, DIR_SEPARATOR_STRING); + strcat (FileName, "hivecls.inf"); + ImportRegistryFile (FileName);
- convert_path (FileName, argv[1]); - strcat (FileName, DIR_SEPARATOR_STRING); - strcat (FileName, "hivesft.inf"); - ImportRegistryFile (FileName); + convert_path (FileName, argv[1]); + strcat (FileName, DIR_SEPARATOR_STRING); + strcat (FileName, "hivesft.inf"); + ImportRegistryFile (FileName);
- convert_path (FileName, argv[1]); - strcat (FileName, DIR_SEPARATOR_STRING); - strcat (FileName, "hivedef.inf"); - ImportRegistryFile (FileName); + convert_path (FileName, argv[1]); + strcat (FileName, DIR_SEPARATOR_STRING); + strcat (FileName, "hivedef.inf"); + ImportRegistryFile (FileName);
- for (Param = 3; Param < argc; Param++) - { - convert_path (FileName, argv[Param]); - ImportRegistryFile (FileName); - } + for (Param = 3; Param < argc; Param++) + { + convert_path (FileName, argv[Param]); + ImportRegistryFile (FileName); + }
- convert_path (FileName, argv[2]); - strcat (FileName, DIR_SEPARATOR_STRING); - strcat (FileName, "default"); - if (!ExportBinaryHive (FileName, &DefaultHive)) - { - return 1; - } + convert_path (FileName, argv[2]); + strcat (FileName, DIR_SEPARATOR_STRING); + strcat (FileName, "default"); + if (!ExportBinaryHive (FileName, &DefaultHive)) + { + return 1; + }
- convert_path (FileName, argv[2]); - strcat (FileName, DIR_SEPARATOR_STRING); - strcat (FileName, "sam"); - if (!ExportBinaryHive (FileName, &SamHive)) - { - return 1; - } + convert_path (FileName, argv[2]); + strcat (FileName, DIR_SEPARATOR_STRING); + strcat (FileName, "sam"); + if (!ExportBinaryHive (FileName, &SamHive)) + { + return 1; + }
- convert_path (FileName, argv[2]); - strcat (FileName, DIR_SEPARATOR_STRING); - strcat (FileName, "security"); - if (!ExportBinaryHive (FileName, &SecurityHive)) - { - return 1; - } + convert_path (FileName, argv[2]); + strcat (FileName, DIR_SEPARATOR_STRING); + strcat (FileName, "security"); + if (!ExportBinaryHive (FileName, &SecurityHive)) + { + return 1; + }
- convert_path (FileName, argv[2]); - strcat (FileName, DIR_SEPARATOR_STRING); - strcat (FileName, "software"); - if (!ExportBinaryHive (FileName, &SoftwareHive)) - { - return 1; - } + convert_path (FileName, argv[2]); + strcat (FileName, DIR_SEPARATOR_STRING); + strcat (FileName, "software"); + if (!ExportBinaryHive (FileName, &SoftwareHive)) + { + return 1; + }
- convert_path (FileName, argv[2]); - strcat (FileName, DIR_SEPARATOR_STRING); - strcat (FileName, "system"); - if (!ExportBinaryHive (FileName, &SystemHive)) - { - return 1; - } + convert_path (FileName, argv[2]); + strcat (FileName, DIR_SEPARATOR_STRING); + strcat (FileName, "system"); + if (!ExportBinaryHive (FileName, &SystemHive)) + { + return 1; + }
-// RegShutdownRegistry (); + //RegShutdownRegistry ();
- printf (" Done.\n"); + printf (" Done.\n");
- return 0; + return 0; }
/* EOF */
Modified: trunk/reactos/tools/mkhive/reginf.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/tools/mkhive/reginf.c?rev=2... ============================================================================== --- trunk/reactos/tools/mkhive/reginf.c (original) +++ trunk/reactos/tools/mkhive/reginf.c Thu Aug 30 12:38:30 2007 @@ -53,33 +53,33 @@ static BOOL GetRootKey (PCHAR Name) { - if (!strcasecmp (Name, "HKCR")) - { - strcpy (Name, "\Registry\Machine\SOFTWARE\Classes\"); - return TRUE; - } - - if (!strcasecmp (Name, "HKCU")) - { - strcpy (Name, "\Registry\User\.DEFAULT\"); - return TRUE; - } - - if (!strcasecmp (Name, "HKLM")) - { - strcpy (Name, "\Registry\Machine\"); - return TRUE; - } - - if (!strcasecmp (Name, "HKU")) - { - strcpy (Name, "\Registry\User\"); - return TRUE; - } + if (!strcasecmp (Name, "HKCR")) + { + strcpy (Name, "\Registry\Machine\SOFTWARE\Classes\"); + return TRUE; + } + + if (!strcasecmp (Name, "HKCU")) + { + strcpy (Name, "\Registry\User\.DEFAULT\"); + return TRUE; + } + + if (!strcasecmp (Name, "HKLM")) + { + strcpy (Name, "\Registry\Machine\"); + return TRUE; + } + + if (!strcasecmp (Name, "HKU")) + { + strcpy (Name, "\Registry\User\"); + return TRUE; + }
#if 0 - if (!strcasecmp (Name, "HKR")) - return FALSE; + if (!strcasecmp (Name, "HKR")) + return FALSE; #endif
return FALSE; @@ -92,74 +92,78 @@ * Append a multisz string to a multisz registry value. */ static VOID -AppendMultiSzValue (HKEY KeyHandle, - PCHAR ValueName, - PCHAR Strings, - SIZE_T StringSize) +AppendMultiSzValue ( + IN HKEY KeyHandle, + IN PCHAR ValueName, + IN PCHAR Strings, + IN SIZE_T StringSize) { - SIZE_T Size; - ULONG Type; - size_t Total; - PCHAR Buffer; - PCHAR p; - size_t len; - LONG Error; - - Error = RegQueryValueExA (KeyHandle, - ValueName, - NULL, - &Type, - NULL, - &Size); - if ((Error != ERROR_SUCCESS) || - (Type != REG_MULTI_SZ)) - return; - - Buffer = malloc (Size + StringSize); - if (Buffer == NULL) - return; - - Error = RegQueryValueExA (KeyHandle, - ValueName, - NULL, - NULL, - (PUCHAR)Buffer, - &Size); - if (Error != ERROR_SUCCESS) - goto done; - - /* compare each string against all the existing ones */ - Total = Size; - while (*Strings != 0) - { - len = strlen (Strings) + 1; - - for (p = Buffer; *p != 0; p += strlen (p) + 1) - if (!strcasecmp (p, Strings)) - break; - - if (*p == 0) /* not found, need to append it */ - { - memcpy (p, Strings, len); - p[len] = 0; - Total += len; - } - Strings += len; - } - - if (Total != Size) - { - DPRINT ("setting value %s to %s\n", ValueName, Buffer); - RegSetValueExA (KeyHandle, - ValueName, - 0, - REG_MULTI_SZ, - (PCHAR)Buffer, - (ULONG)Total); - } + SIZE_T Size; + ULONG Type; + size_t Total; + PCHAR Buffer; + PCHAR p; + size_t len; + LONG Error; + + Error = RegQueryValueExA ( + KeyHandle, + ValueName, + NULL, + &Type, + NULL, + &Size); + if ((Error != ERROR_SUCCESS) || + (Type != REG_MULTI_SZ)) + return; + + Buffer = malloc (Size + StringSize); + if (Buffer == NULL) + return; + + Error = RegQueryValueExA ( + KeyHandle, + ValueName, + NULL, + NULL, + (PUCHAR)Buffer, + &Size); + if (Error != ERROR_SUCCESS) + goto done; + + /* compare each string against all the existing ones */ + Total = Size; + while (*Strings != 0) + { + len = strlen (Strings) + 1; + + for (p = Buffer; *p != 0; p += strlen (p) + 1) + if (!strcasecmp (p, Strings)) + break; + + if (*p == 0) /* not found, need to append it */ + { + memcpy (p, Strings, len); + p[len] = 0; + Total += len; + } + Strings += len; + } + + if (Total != Size) + { + DPRINT ("setting value %s to %s\n", ValueName, Buffer); + RegSetValueExA ( + KeyHandle, + ValueName, + 0, + REG_MULTI_SZ, + (PCHAR)Buffer, + (ULONG)Total); + }
done: - free (Buffer); + free (Buffer); }
@@ -169,200 +173,204 @@ * Perform an add/delete registry operation depending on the flags. */ static BOOL -do_reg_operation(HKEY KeyHandle, - PCHAR ValueName, - PINFCONTEXT Context, - ULONG Flags) +do_reg_operation( + IN HKEY KeyHandle, + IN PCHAR ValueName, + IN PINFCONTEXT Context, + IN ULONG Flags) { - CHAR EmptyStr = (CHAR)0; - ULONG Type; - SIZE_T Size; - LONG Error; - - if (Flags & FLG_ADDREG_DELVAL) /* deletion */ - { - if (ValueName) - { - RegDeleteValueA (KeyHandle, - ValueName); - } - else - { - RegDeleteKeyA (KeyHandle, + CHAR EmptyStr = (CHAR)0; + ULONG Type; + SIZE_T Size; + LONG Error; + + if (Flags & FLG_ADDREG_DELVAL) /* deletion */ + { + if (ValueName) + { + RegDeleteValueA (KeyHandle, ValueName); + } + else + { + RegDeleteKeyA (KeyHandle, NULL); + } + + return TRUE; + } + + if (Flags & FLG_ADDREG_KEYONLY) + return TRUE; + + if (Flags & (FLG_ADDREG_NOCLOBBER | FLG_ADDREG_OVERWRITEONLY)) + { + Error = RegQueryValueExA ( + KeyHandle, + ValueName, + NULL, + NULL, + NULL, NULL); - } - - return TRUE; - } - - if (Flags & FLG_ADDREG_KEYONLY) - return TRUE; - - if (Flags & (FLG_ADDREG_NOCLOBBER | FLG_ADDREG_OVERWRITEONLY)) - { - Error = RegQueryValueExA (KeyHandle, - ValueName, - NULL, - NULL, - NULL, - NULL); - if ((Error == ERROR_SUCCESS) && - (Flags & FLG_ADDREG_NOCLOBBER)) + if ((Error == ERROR_SUCCESS) && + (Flags & FLG_ADDREG_NOCLOBBER)) + return TRUE; + + if ((Error != ERROR_SUCCESS) && + (Flags & FLG_ADDREG_OVERWRITEONLY)) + return TRUE; + } + + switch (Flags & FLG_ADDREG_TYPE_MASK) + { + case FLG_ADDREG_TYPE_SZ: + Type = REG_SZ; + break; + + case FLG_ADDREG_TYPE_MULTI_SZ: + Type = REG_MULTI_SZ; + break; + + case FLG_ADDREG_TYPE_EXPAND_SZ: + Type = REG_EXPAND_SZ; + break; + + case FLG_ADDREG_TYPE_BINARY: + Type = REG_BINARY; + break; + + case FLG_ADDREG_TYPE_DWORD: + Type = REG_DWORD; + break; + + case FLG_ADDREG_TYPE_NONE: + Type = REG_NONE; + break; + + default: + Type = Flags >> 16; + break; + } + + if (!(Flags & FLG_ADDREG_BINVALUETYPE) || + (Type == REG_DWORD && InfHostGetFieldCount (Context) == 5)) + { + PCHAR Str = NULL; + + if (Type == REG_MULTI_SZ) + { + if (InfHostGetMultiSzField (Context, 5, NULL, 0, &Size) != 0) + Size = 0; + + if (Size) + { + Str = malloc (Size); + if (Str == NULL) + return FALSE; + + InfHostGetMultiSzField (Context, 5, Str, (ULONG)Size, NULL); + } + + if (Flags & FLG_ADDREG_APPEND) + { + if (Str == NULL) + return TRUE; + + AppendMultiSzValue ( + KeyHandle, + ValueName, + Str, + Size); + + free (Str); + return TRUE; + } + /* else fall through to normal string handling */ + } + else + { + if (InfHostGetStringField (Context, 5, NULL, 0, &Size) != 0) + Size = 0; + + if (Size) + { + Str = malloc (Size); + if (Str == NULL) + return FALSE; + + InfHostGetStringField (Context, 5, Str, (ULONG)Size, NULL); + } + } + + if (Type == REG_DWORD) + { + ULONG dw = Str ? strtoul (Str, NULL, 0) : 0; + + DPRINT("setting dword %s to %lx\n", ValueName, dw); + + RegSetValueExA ( + KeyHandle, + ValueName, + 0, + Type, + (const PUCHAR)&dw, + sizeof(ULONG)); + } + else + { + DPRINT("setting value %s to %s\n", ValueName, Str); + + if (Str) + { + RegSetValueExA ( + KeyHandle, + ValueName, + 0, + Type, + (PVOID)Str, + (ULONG)Size); + } + else + { + RegSetValueExA ( + KeyHandle, + ValueName, + 0, + Type, + (PVOID)&EmptyStr, + (ULONG)sizeof(CHAR)); + } + } + free (Str); + } + else /* get the binary data */ + { + PCHAR Data = NULL; + + if (InfHostGetBinaryField (Context, 5, NULL, 0, &Size) != 0) + Size = 0; + + if (Size) + { + Data = malloc (Size); + if (Data == NULL) + return FALSE; + + DPRINT("setting binary data %s len %lu\n", ValueName, Size); + InfHostGetBinaryField (Context, 5, Data, (ULONG)Size, NULL); + } + + RegSetValueExA ( + KeyHandle, + ValueName, + 0, + Type, + (PVOID)Data, + (ULONG)Size); + + free (Data); + } + return TRUE; - - if ((Error != ERROR_SUCCESS) && - (Flags & FLG_ADDREG_OVERWRITEONLY)) - return TRUE; - } - - switch (Flags & FLG_ADDREG_TYPE_MASK) - { - case FLG_ADDREG_TYPE_SZ: - Type = REG_SZ; - break; - - case FLG_ADDREG_TYPE_MULTI_SZ: - Type = REG_MULTI_SZ; - break; - - case FLG_ADDREG_TYPE_EXPAND_SZ: - Type = REG_EXPAND_SZ; - break; - - case FLG_ADDREG_TYPE_BINARY: - Type = REG_BINARY; - break; - - case FLG_ADDREG_TYPE_DWORD: - Type = REG_DWORD; - break; - - case FLG_ADDREG_TYPE_NONE: - Type = REG_NONE; - break; - - default: - Type = Flags >> 16; - break; - } - - if (!(Flags & FLG_ADDREG_BINVALUETYPE) || - (Type == REG_DWORD && InfHostGetFieldCount (Context) == 5)) - { - PCHAR Str = NULL; - - if (Type == REG_MULTI_SZ) - { - if (InfHostGetMultiSzField (Context, 5, NULL, 0, &Size) != 0) - Size = 0; - - if (Size) - { - Str = malloc (Size); - if (Str == NULL) - return FALSE; - - InfHostGetMultiSzField (Context, 5, Str, (ULONG)Size, NULL); - } - - if (Flags & FLG_ADDREG_APPEND) - { - if (Str == NULL) - return TRUE; - - AppendMultiSzValue (KeyHandle, - ValueName, - Str, - Size); - - free (Str); - return TRUE; - } - /* else fall through to normal string handling */ - } - else - { - if (InfHostGetStringField (Context, 5, NULL, 0, &Size) != 0) - Size = 0; - - if (Size) - { - Str = malloc (Size); - if (Str == NULL) - return FALSE; - - InfHostGetStringField (Context, 5, Str, (ULONG)Size, NULL); - } - } - - if (Type == REG_DWORD) - { - ULONG dw = Str ? strtoul (Str, NULL, 0) : 0; - - DPRINT("setting dword %s to %lx\n", ValueName, dw); - - RegSetValueExA (KeyHandle, - ValueName, - 0, - Type, - (const PUCHAR)&dw, - sizeof(ULONG)); - } - else - { - DPRINT("setting value %s to %s\n", ValueName, Str); - - if (Str) - { - RegSetValueExA (KeyHandle, - ValueName, - 0, - Type, - (PVOID)Str, - (ULONG)Size); - } - else - { - RegSetValueExA (KeyHandle, - ValueName, - 0, - Type, - (PVOID)&EmptyStr, - (ULONG)sizeof(CHAR)); - } - } - free (Str); - } - else /* get the binary data */ - { - PCHAR Data = NULL; - - if (InfHostGetBinaryField (Context, 5, NULL, 0, &Size) != 0) - Size = 0; - - if (Size) - { - Data = malloc (Size); - if (Data == NULL) - return FALSE; - - DPRINT("setting binary data %s len %lu\n", ValueName, Size); - InfHostGetBinaryField (Context, 5, Data, (ULONG)Size, NULL); - } - - RegSetValueExA (KeyHandle, - ValueName, - 0, - Type, - (PVOID)Data, - (ULONG)Size); - - free (Data); - } - - return TRUE; } -
/*********************************************************************** * registry_callback @@ -372,114 +380,114 @@ static BOOL registry_callback (HINF hInf, PCHAR Section, BOOL Delete) { - CHAR Buffer[MAX_INF_STRING_LENGTH]; - PCHAR ValuePtr; - ULONG Flags; - size_t Length; - - PINFCONTEXT Context = NULL; - HKEY KeyHandle; - BOOL Ok; - - - Ok = InfHostFindFirstLine (hInf, Section, NULL, &Context) == 0; - if (!Ok) - return TRUE; /* Don't fail if the section isn't present */ - - for (;Ok; Ok = (InfHostFindNextLine (Context, Context) == 0)) - { - /* get root */ - if (InfHostGetStringField (Context, 1, Buffer, MAX_INF_STRING_LENGTH, NULL) != 0) - continue; - if (!GetRootKey (Buffer)) - continue; - - /* get key */ - Length = strlen (Buffer); - if (InfHostGetStringField (Context, 2, Buffer + Length, MAX_INF_STRING_LENGTH - (ULONG)Length, NULL) != 0) - *Buffer = 0; - - DPRINT("KeyName: <%s>\n", Buffer); - - if (Delete) - { - Flags = FLG_ADDREG_DELVAL; - } - else - { - /* get flags */ - if (InfHostGetIntField (Context, 4, (PLONG)&Flags) != 0) - Flags = 0; - } - - DPRINT("Flags: %lx\n", Flags); - - if (Delete || (Flags & FLG_ADDREG_OVERWRITEONLY)) - { - if (RegOpenKeyA (NULL, Buffer, &KeyHandle) != ERROR_SUCCESS) - { - DPRINT("RegOpenKey(%s) failed\n", Buffer); - continue; /* ignore if it doesn't exist */ - } - } - else - { - if (RegCreateKeyA (NULL, Buffer, &KeyHandle) != ERROR_SUCCESS) - { - DPRINT("RegCreateKey(%s) failed\n", Buffer); - continue; - } - } - - /* get value name */ - if (InfHostGetStringField (Context, 3, Buffer, MAX_INF_STRING_LENGTH, NULL) == 0) - { - ValuePtr = Buffer; - } - else - { - ValuePtr = NULL; - } - - /* and now do it */ - if (!do_reg_operation (KeyHandle, ValuePtr, Context, Flags)) - { - return FALSE; - } - } - - InfHostFreeContext(Context); - - return TRUE; + CHAR Buffer[MAX_INF_STRING_LENGTH]; + PCHAR ValuePtr; + ULONG Flags; + size_t Length; + + PINFCONTEXT Context = NULL; + HKEY KeyHandle; + BOOL Ok; + + + Ok = InfHostFindFirstLine (hInf, Section, NULL, &Context) == 0; + if (!Ok) + return TRUE; /* Don't fail if the section isn't present */ + + for (;Ok; Ok = (InfHostFindNextLine (Context, Context) == 0)) + { + /* get root */ + if (InfHostGetStringField (Context, 1, Buffer, MAX_INF_STRING_LENGTH, NULL) != 0) + continue; + if (!GetRootKey (Buffer)) + continue; + + /* get key */ + Length = strlen (Buffer); + if (InfHostGetStringField (Context, 2, Buffer + Length, MAX_INF_STRING_LENGTH - (ULONG)Length, NULL) != 0) + *Buffer = 0; + + DPRINT("KeyName: <%s>\n", Buffer); + + if (Delete) + { + Flags = FLG_ADDREG_DELVAL; + } + else + { + /* get flags */ + if (InfHostGetIntField (Context, 4, (PLONG)&Flags) != 0) + Flags = 0; + } + + DPRINT("Flags: %lx\n", Flags); + + if (Delete || (Flags & FLG_ADDREG_OVERWRITEONLY)) + { + if (RegOpenKeyA (NULL, Buffer, &KeyHandle) != ERROR_SUCCESS) + { + DPRINT("RegOpenKey(%s) failed\n", Buffer); + continue; /* ignore if it doesn't exist */ + } + } + else + { + if (RegCreateKeyA (NULL, Buffer, &KeyHandle) != ERROR_SUCCESS) + { + DPRINT("RegCreateKey(%s) failed\n", Buffer); + continue; + } + } + + /* get value name */ + if (InfHostGetStringField (Context, 3, Buffer, MAX_INF_STRING_LENGTH, NULL) == 0) + { + ValuePtr = Buffer; + } + else + { + ValuePtr = NULL; + } + + /* and now do it */ + if (!do_reg_operation (KeyHandle, ValuePtr, Context, Flags)) + { + return FALSE; + } + } + + InfHostFreeContext(Context); + + return TRUE; }
BOOL ImportRegistryFile(PCHAR FileName) { - HINF hInf; - ULONG ErrorLine; - - /* Load inf file from install media. */ - if (InfHostOpenFile(&hInf, FileName, &ErrorLine) != 0) - { - DPRINT1 ("InfHostOpenFile() failed\n"); - return FALSE; - } - - if (!registry_callback (hInf, "DelReg", TRUE)) - { - DPRINT1 ("registry_callback() failed\n"); - } - - if (!registry_callback (hInf, "AddReg", FALSE)) - { - DPRINT1 ("registry_callback() failed\n"); - } - - InfHostCloseFile (hInf); - - return TRUE; + HINF hInf; + ULONG ErrorLine; + + /* Load inf file from install media. */ + if (InfHostOpenFile(&hInf, FileName, &ErrorLine) != 0) + { + DPRINT1 ("InfHostOpenFile() failed\n"); + return FALSE; + } + + if (!registry_callback (hInf, "DelReg", TRUE)) + { + DPRINT1 ("registry_callback() failed\n"); + } + + if (!registry_callback (hInf, "AddReg", FALSE)) + { + DPRINT1 ("registry_callback() failed\n"); + } + + InfHostCloseFile (hInf); + + return TRUE; }
/* EOF */