[install] Add reg_set_sz() function
authorMichael Brown <mcb30@etherboot.org>
Wed, 28 Oct 2009 07:25:30 +0000 (07:25 +0000)
committerMichael Brown <mcb30@etherboot.org>
Wed, 28 Oct 2009 19:19:13 +0000 (19:19 +0000)
installer/registry.c
installer/registry.h

index f3ff6ef..57324fe 100644 (file)
@@ -253,6 +253,24 @@ LONG reg_query_sz ( HKEY key, LPCWSTR subkey_name, LPCWSTR value_name,
        return err;
 }
 
+/**
+ * Write REG_SZ value
+ *
+ * @v key              Registry key
+ * @v subkey_name      Registry subkey name, or NULL
+ * @v value_name       Registry value name
+ * @v sz               String
+ * @ret err            Error status
+ */
+LONG reg_set_sz ( HKEY key, LPCWSTR subkey_name, LPCWSTR value_name,
+                 LPWSTR sz ) {
+       SIZE_T len;
+
+       len = ( ( wcslen ( sz ) + 1 ) * sizeof ( sz[0] ) );
+       return reg_set_value ( key, subkey_name, value_name, REG_SZ,
+                              ( ( LPBYTE ) sz ), ( ( DWORD ) len ) );
+}
+
 /**
  * Read REG_MULTI_SZ value
  *
index 130cbe0..ace0fcf 100644 (file)
@@ -15,6 +15,8 @@ extern LONG reg_value_exists ( HKEY key, LPCWSTR subkey_name,
                               LPCWSTR value_name );
 extern LONG reg_query_sz ( HKEY key, LPCWSTR subkey_name, LPCWSTR value_name,
                           LPWSTR *sz );
+extern LONG reg_set_sz ( HKEY key, LPCWSTR subkey_name, LPCWSTR value_name,
+                        LPWSTR sz );
 extern LONG reg_query_multi_sz ( HKEY key, LPCWSTR subkey_name,
                                 LPCWSTR value_name, LPWSTR **multi_sz );
 extern LONG reg_set_multi_sz ( HKEY key, LPCWSTR subkey_name,