[registry] Cosmetic touch-ups
authorShao Miller <Shao.Miller@yrdsb.edu.on.ca>
Fri, 31 Dec 2010 11:19:46 +0000 (06:19 -0500)
committerShao Miller <Shao.Miller@yrdsb.edu.on.ca>
Fri, 31 Dec 2010 11:19:46 +0000 (06:19 -0500)
It's possibly more than cosmetic, but hopefully not.

Also, a typo of STDCALL in WvDriverBusEstablish_ is
fixed.  I'm not sure how that snuck past the build test.

src/aoe/registry.c
src/include/registry.h
src/winvblock/driver.c
src/winvblock/registry.c

index c2d0c8a..9cd64b1 100644 (file)
@@ -65,7 +65,7 @@ winvblock__bool STDCALL AoeRegSetup(OUT PNTSTATUS status_out) {
     RtlInitUnicodeString(&Service, L"Service");
 
     /* Open the network adapter class key. */
-    status = registry__open_key(
+    status = WvlRegOpenKey(
         (L"\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Control\\Class\\"
           L"{4D36E972-E325-11CE-BFC1-08002BE10318}\\"),
         &NetworkClassKeyHandle
@@ -96,7 +96,7 @@ winvblock__bool STDCALL AoeRegSetup(OUT PNTSTATUS status_out) {
           {
             DBG("wv_malloc KeyData failed\n");
             goto e0_1;
-            registry__close_key(NetworkClassKeyHandle);
+            WvlRegCloseKey(NetworkClassKeyHandle);
           }
         if (!(NT_SUCCESS(
             ZwEnumerateKey(
@@ -479,7 +479,7 @@ winvblock__bool STDCALL AoeRegSetup(OUT PNTSTATUS status_out) {
         wv_free(KeyInformation);
         SubkeyIndex++;
       } /* while */
-    registry__close_key ( NetworkClassKeyHandle );
+    WvlRegCloseKey(NetworkClassKeyHandle);
     *status_out = STATUS_SUCCESS;
     return Updated;
 
@@ -518,7 +518,7 @@ winvblock__bool STDCALL AoeRegSetup(OUT PNTSTATUS status_out) {
     wv_free(KeyInformation);
     e0_1:
 
-    registry__close_key(NetworkClassKeyHandle);
+    WvlRegCloseKey(NetworkClassKeyHandle);
     err_keyopennetworkclass:
 
     *status_out = STATUS_UNSUCCESSFUL;
index 40df523..cc40177 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * Copyright (C) 2009, Shao Miller <shao.miller@yrdsb.edu.on.ca>.
+ * Copyright (C) 2009-2010, Shao Miller <shao.miller@yrdsb.edu.on.ca>.
  * Copyright 2006-2008, V.
  * For WinAoE contact information, see http://winaoe.org/
  *
 /**
  * @file
  *
- * Registry specifics
- *
- */
-
-/**
- * Note BOOT.INI-style OsLoadOptions from registry
- *
- * @v w_str_ptr         Pointer to pointer to wide-char string to hold options
- * @ret ntstatus       NT status
- *
- * The caller must eventually free the wide-char string.
- */
-extern NTSTATUS registry__note_os_load_opts (
-  LPWSTR * w_str_ptr
- );
-
-/**
- * Open registry key
- *
- * @v reg_key_name  Registry key name
- * @v reg_key       Registry key to fill in
- * @ret ntstatus    NT status
- */
-extern winvblock__lib_func NTSTATUS registry__open_key (
-  LPCWSTR reg_key_name,
-  PHANDLE reg_key
- );
-
-/**
- * Close registry key
- *
- * @v reg_key   Registry key
- */
-extern winvblock__lib_func void registry__close_key (
-  HANDLE reg_key
- );
-
-/**
- * Fetch registry key value information
- *
- * @v reg_key     Registry key
- * @v value_name  Registry value name
- * @v kvi         Key value information block to allocate and fill in
- * @ret ntstatus  NT status
- *
- * The caller must eventually free the allocated key value information
- * block.
- */
-extern winvblock__lib_func NTSTATUS registry__fetch_kvi (
-  HANDLE reg_key,
-  LPCWSTR value_name,
-  PKEY_VALUE_PARTIAL_INFORMATION * kvi
- );
-
-/**
- * Fetch registry string value
- *
- * @v reg_key     Registry key
- * @v value_name  Registry value name
- * @v value       String value to allocate and fill in
- * @ret ntstatus  NT status
- *
- * The caller must eventually free the allocated value.
- */
-extern winvblock__lib_func NTSTATUS registry__fetch_sz (
-  HANDLE reg_key,
-  LPCWSTR value_name,
-  LPWSTR * value
- );
-
-/**
- * Fetch registry multiple-string value
- *
- * @v reg_key     Registry key
- * @v value_name  Registry value name
- * @v values      Array of string values to allocate and fill in
- * @ret ntstatus  NT status
- *
- * The caller must eventually free the allocated values.
- */
-extern winvblock__lib_func NTSTATUS registry__fetch_multi_sz (
-  HANDLE reg_key,
-  LPCWSTR value_name,
-  LPWSTR ** values
- );
-
-/**
- * Store registry string value
- *
- * @v reg_key     Registry key
- * @v value_name  Registry value name
- * @v value       String value to store
- * @ret ntstatus  NT status
- */
-extern winvblock__lib_func NTSTATUS registry__store_sz (
-  HANDLE reg_key,
-  LPCWSTR value_name,
-  LPWSTR value
- );
-
-/**
- * Store registry dword value
- *
- * @v reg_key     Registry key
- * @v value_name  Registry value name
- * @v value       String value to store, or NULL
- * @ret ntstatus  NT status
- */
-extern winvblock__lib_func NTSTATUS registry__store_dword (
-  HANDLE reg_key,
-  LPCWSTR value_name,
-  winvblock__uint32 value
- );
+ * Registry specifics.
+ */
+
+extern winvblock__lib_func NTSTATUS STDCALL WvlRegNoteOsLoadOpts(LPWSTR *);
+extern winvblock__lib_func NTSTATUS STDCALL WvlRegOpenKey(LPCWSTR, PHANDLE);
+extern winvblock__lib_func void STDCALL WvlRegCloseKey(HANDLE);
+extern winvblock__lib_func NTSTATUS STDCALL WvlRegFetchKvi(
+    HANDLE,
+    LPCWSTR,
+    PKEY_VALUE_PARTIAL_INFORMATION *
+  );
+extern winvblock__lib_func NTSTATUS STDCALL WvlRegFetchSz(
+    HANDLE,
+    LPCWSTR,
+    LPWSTR *
+  );
+extern winvblock__lib_func NTSTATUS STDCALL WvlRegFetchMultiSz(
+    HANDLE,
+    LPCWSTR,
+    LPWSTR **
+  );
+extern winvblock__lib_func NTSTATUS STDCALL WvlRegStoreSz(
+    HANDLE,
+    LPCWSTR,
+    LPWSTR
+  );
+extern winvblock__lib_func NTSTATUS STDCALL WvlRegStoreDword(
+    HANDLE,
+    LPCWSTR,
+    winvblock__uint32
+  );
 
 #endif  /* WV_M_REGISTRY_H_ */
index 3474280..d67928c 100644 (file)
@@ -250,7 +250,7 @@ static NTSTATUS STDCALL driver__attach_fdo_(
   }
 
 /* Establish the bus PDO. */
-static NTSTATUS STCALL WvDriverBusEstablish_(IN PUNICODE_STRING RegistryPath) {
+static NTSTATUS STDCALL WvDriverBusEstablish_(IN PUNICODE_STRING RegistryPath) {
     WV_SP_BUS_T bus;
     NTSTATUS status;
     PDEVICE_OBJECT bus_pdo = NULL;
@@ -310,9 +310,9 @@ NTSTATUS STDCALL DriverEntry(
     if (WvDriverStarted_)
       return STATUS_SUCCESS;
     Debug_Initialize();
-    status = registry__note_os_load_opts(&WvDriverOsLoadOpts_);
+    status = WvlRegNoteOsLoadOpts(&WvDriverOsLoadOpts_);
     if (!NT_SUCCESS(status))
-      return Error("registry__note_driver__os_load_opts", status);
+      return Error("WvlRegNoteOsLoadOpts", status);
 
     WvDriverStateHandle_ = NULL;
     KeInitializeSpinLock(&WvDriverBusFdoLock_);
index 2434e8f..06cf6ff 100644 (file)
 #include "registry.h"
 
 /**
- * Open registry key
+ * Open registry key.
  *
- * @v reg_key_name  Registry key name
- * @v reg_key       Registry key to fill in
- * @ret ntstatus    NT status
+ * @v RegKeyName        Registry key name.
+ * @v RegKey            Registry key handle to fill in.
+ * @ret NTSTATUS        The status of the operation.
  */
-winvblock__lib_func NTSTATUS
-registry__open_key (
-  LPCWSTR reg_key_name,
-  PHANDLE reg_key
- )
-{
-  UNICODE_STRING unicode_string;
-  OBJECT_ATTRIBUTES object_attrs;
-  NTSTATUS status;
-
-  RtlInitUnicodeString ( &unicode_string, reg_key_name );
-  InitializeObjectAttributes ( &object_attrs, &unicode_string,
-                              OBJ_KERNEL_HANDLE | OBJ_CASE_INSENSITIVE, NULL,
-                              NULL );
-  status = ZwOpenKey ( reg_key, KEY_ALL_ACCESS, &object_attrs );
-  if ( !NT_SUCCESS ( status ) )
-    {
-      DBG ( "Could not open %S: %x\n", reg_key_name, status );
-      return status;
-    }
-
-  return STATUS_SUCCESS;
-}
+winvblock__lib_func NTSTATUS STDCALL WvlRegOpenKey(
+    LPCWSTR RegKeyName,
+    PHANDLE RegKey
+  ) {
+    UNICODE_STRING unicode_string;
+    OBJECT_ATTRIBUTES object_attrs;
+    NTSTATUS status;
+
+    RtlInitUnicodeString(&unicode_string, RegKeyName);
+    InitializeObjectAttributes(
+        &object_attrs,
+        &unicode_string,
+        OBJ_KERNEL_HANDLE | OBJ_CASE_INSENSITIVE,
+        NULL,
+        NULL
+      );
+    status = ZwOpenKey(RegKey, KEY_ALL_ACCESS, &object_attrs);
+    if (!NT_SUCCESS(status)) {
+        DBG("Could not open %S: %x\n", RegKeyName, status);
+        return status;
+      }
+
+    return STATUS_SUCCESS;
+  }
 
 /**
- * Close registry key
+ * Close a registry key handle.
  *
- * @v reg_key   Registry key
+ * @v RegKey            Registry key handle to close.
  */
-winvblock__lib_func void
-registry__close_key (
-  HANDLE reg_key
- )
-{
-  ZwClose ( reg_key );
-}
+winvblock__lib_func void STDCALL WvlRegCloseKey(HANDLE RegKey) {
+    ZwClose(RegKey);
+  }
 
 /**
- * Fetch registry key value information
+ * Fetch registry key value information.
  *
- * @v reg_key     Registry key
- * @v value_name  Registry value name
- * @v kvi         Key value information block to allocate and fill in
- * @ret ntstatus  NT status
+ * @v RegKey            Registry key to fetch KVI for.
+ * @v ValueName         Registry value name to fetch KVI for.
+ * @v Kvi               Key value information block to allocate and fill in.
+ * @ret NTSTATUS        The status of the operation.
  *
  * The caller must eventually free the allocated key value information
  * block.
  */
-winvblock__lib_func NTSTATUS
-registry__fetch_kvi (
-  HANDLE reg_key,
-  LPCWSTR value_name,
-  PKEY_VALUE_PARTIAL_INFORMATION * kvi
- )
-{
-  UNICODE_STRING u_value_name;
-  winvblock__uint32 kvi_len;
-  NTSTATUS status;
-
-  /*
-   * Get value length 
-   */
-  RtlInitUnicodeString ( &u_value_name, value_name );
-  status =
-    ZwQueryValueKey ( reg_key, &u_value_name, KeyValuePartialInformation, NULL,
-                     0, &kvi_len );
-  if ( !
-       ( ( status == STATUS_SUCCESS ) || ( status == STATUS_BUFFER_OVERFLOW )
-        || ( status == STATUS_BUFFER_TOO_SMALL ) ) )
-    {
-      DBG ( "Could not get KVI length for \"%S\": %x\n", value_name, status );
-      goto err_zwqueryvaluekey_len;
-    }
-
-  /*
-   * Allocate value buffer 
-   */
-  *kvi = wv_malloc(kvi_len);
-  if ( !*kvi )
-    {
-      DBG ( "Could not allocate KVI for \"%S\": %x\n", value_name, status );
-      goto err_kvi;
-    }
-
-  /*
-   * Fetch value 
-   */
-  status =
-    ZwQueryValueKey ( reg_key, &u_value_name, KeyValuePartialInformation, *kvi,
-                     kvi_len, &kvi_len );
-  if ( !NT_SUCCESS ( status ) )
-    {
-      DBG ( "Could not get KVI for \"%S\": %x\n", value_name, status );
-      goto err_zwqueryvaluekey;
-    }
-
-  return STATUS_SUCCESS;
-
-err_zwqueryvaluekey:
-  wv_free(kvi);
-err_kvi:
-err_zwqueryvaluekey_len:
-  return status;
-}
+winvblock__lib_func NTSTATUS STDCALL WvlRegFetchKvi(
+    HANDLE RegKey,
+    LPCWSTR ValueName,
+    PKEY_VALUE_PARTIAL_INFORMATION * Kvi
+  ) {
+    UNICODE_STRING u_value_name;
+    winvblock__uint32 kvi_len;
+    NTSTATUS status;
+
+    /* Get value length. */
+    RtlInitUnicodeString(&u_value_name, ValueName);
+    status = ZwQueryValueKey(
+        RegKey,
+        &u_value_name,
+        KeyValuePartialInformation,
+        NULL,
+        0,
+        &kvi_len
+      );
+    if (!(
+        (status == STATUS_SUCCESS) ||
+        (status == STATUS_BUFFER_OVERFLOW) ||
+        (status == STATUS_BUFFER_TOO_SMALL)
+      )) {
+        DBG("Could not get KVI length for \"%S\": %x\n", ValueName, status);
+        goto err_zwqueryvaluekey_len;
+      }
+
+    /* Allocate value buffer. */
+    *Kvi = wv_malloc(kvi_len);
+    if (!*Kvi) {
+        DBG("Could not allocate KVI for \"%S\": %x\n", ValueName, status);
+        goto err_kvi;
+      }
+
+    /* Fetch value. */
+    status = ZwQueryValueKey(
+        RegKey,
+        &u_value_name,
+        KeyValuePartialInformation,
+        *Kvi,
+        kvi_len,
+        &kvi_len
+      );
+    if (!NT_SUCCESS(status)) {
+        DBG("Could not get KVI for \"%S\": %x\n", ValueName, status);
+        goto err_zwqueryvaluekey;
+      }
+
+    return STATUS_SUCCESS;
+
+    err_zwqueryvaluekey:
+
+    wv_free(*Kvi);
+    err_kvi:
+
+    err_zwqueryvaluekey_len:
+
+    return status;
+  }
 
 /**
- * Fetch registry string value
+ * Fetch registry string value.
  *
- * @v reg_key     Registry key
- * @v value_name  Registry value name
- * @v value       String value to allocate and fill in
- * @ret ntstatus  NT status
+ * @v RegKey            Handle for the registry key with the value.
+ * @v ValueName         Registry value name.
+ * @v Value             String value to allocate and fill in.
+ * @ret NTSTATUS        The status of the operation.
  *
  * The caller must eventually free the allocated value.
  */
-winvblock__lib_func NTSTATUS
-registry__fetch_sz (
-  HANDLE reg_key,
-  LPCWSTR value_name,
-  LPWSTR * value
- )
-{
-  PKEY_VALUE_PARTIAL_INFORMATION kvi;
-  winvblock__uint32 value_len;
-  NTSTATUS status;
-
-  /*
-   * Fetch key value information 
-   */
-  status = registry__fetch_kvi ( reg_key, value_name, &kvi );
-  if ( !NT_SUCCESS ( status ) )
-    goto err_fetchkvi;
-
-  /*
-   * Allocate and populate string 
-   */
-  value_len = ( kvi->DataLength + sizeof ( value[0] ) );
-  *value = wv_mallocz(value_len);
-  if ( !*value )
-    {
-      DBG ( "Could not allocate value for \"%S\"\n", value_name );
-      status = STATUS_UNSUCCESSFUL;
-      goto err_value;
-    }
-  RtlCopyMemory ( *value, kvi->Data, kvi->DataLength );
-
-err_value:
-  wv_free(kvi);
-err_fetchkvi:
-  return status;
-}
+winvblock__lib_func NTSTATUS STDCALL WvlRegFetchSz(
+    HANDLE RegKey,
+    LPCWSTR ValueName,
+    LPWSTR * Value
+  ) {
+    PKEY_VALUE_PARTIAL_INFORMATION kvi;
+    winvblock__uint32 value_len;
+    NTSTATUS status;
+
+    /* Fetch key value information. */
+    status = WvlRegFetchKvi(RegKey, ValueName, &kvi);
+    if (!NT_SUCCESS(status))
+      goto err_fetchkvi;
+
+    /* Allocate and populate string. */
+    value_len = (kvi->DataLength + sizeof **Value);
+    *Value = wv_mallocz(value_len);
+    if (!*Value) {
+        DBG("Could not allocate value for \"%S\"\n", ValueName);
+        status = STATUS_UNSUCCESSFUL;
+        goto err_value;
+      }
+    RtlCopyMemory(*Value, kvi->Data, kvi->DataLength);
+
+    err_value:
+
+    wv_free(kvi);
+    err_fetchkvi:
+
+    return status;
+  }
 
 /**
- * Fetch registry multiple-string value
+ * Fetch registry multiple-string value.
  *
- * @v reg_key     Registry key
- * @v value_name  Registry value name
- * @v values      Array of string values to allocate and fill in
- * @ret ntstatus  NT status
+ * @v RegKey            Handle for the registry key with the value.
+ * @v ValueName         Registry value name.
+ * @v Values            Array of string values to allocate and fill in.
+ * @ret NTSTATUS        The status of the operation.
  *
- * The caller must eventually free the allocated values.
+ * The caller must eventually free the allocated value array.
  */
-winvblock__lib_func NTSTATUS
-registry__fetch_multi_sz (
-  HANDLE reg_key,
-  LPCWSTR value_name,
-  LPWSTR ** values
- )
-{
-  PKEY_VALUE_PARTIAL_INFORMATION kvi;
-  LPWSTR string;
-  winvblock__uint32 num_strings;
-  winvblock__uint32 values_len;
-  winvblock__uint32 i;
-  NTSTATUS status;
-
-  /*
-   * Fetch key value information 
-   */
-  status = registry__fetch_kvi ( reg_key, value_name, &kvi );
-  if ( !NT_SUCCESS ( status ) )
-    goto err_fetchkvi;
-
-  /*
-   * Count number of strings in the array.  This is a
-   * potential(ly harmless) overestimate.
-   */
-  num_strings = 0;
-  for ( string = ( ( LPWSTR ) kvi->Data );
-       string < ( ( LPWSTR ) ( kvi->Data + kvi->DataLength ) ); string++ )
-    {
-      if ( !*string )
-       num_strings++;
-    }
-
-  /*
-   * Allocate and populate string array 
-   */
-  values_len =
-    ( ( ( num_strings + 1 ) * sizeof ( values[0] ) ) + kvi->DataLength +
-      sizeof ( values[0][0] ) );
-  *values = wv_mallocz(values_len);
-  if ( !*values )
-    {
-      DBG ( "Could not allocate value array for \"%S\"\n", value_name );
-      status = STATUS_UNSUCCESSFUL;
-      goto err_value;
-    }
-  string = ( ( LPWSTR ) ( *values + num_strings + 1 ) );
-  RtlCopyMemory ( string, kvi->Data, kvi->DataLength );
-  for ( i = 0; i < num_strings; i++ )
-    {
-      ( *values )[i] = string;
-      while ( *string )
-       string++;
-      while ( !*string )
-       string++;
-    }
-
-err_value:
-  wv_free(kvi);
-err_fetchkvi:
-  return status;
-}
+winvblock__lib_func NTSTATUS STDCALL WvlRegFetchMultiSz(
+    HANDLE RegKey,
+    LPCWSTR ValueName,
+    LPWSTR ** Values
+  ) {
+    PKEY_VALUE_PARTIAL_INFORMATION kvi;
+    LPWSTR string;
+    winvblock__uint32 num_strings;
+    winvblock__uint32 values_len;
+    winvblock__uint32 i;
+    NTSTATUS status;
+
+    /* Fetch key value information. */
+    status = WvlRegFetchKvi(RegKey, ValueName, &kvi);
+    if (!NT_SUCCESS(status))
+      goto err_fetchkvi;
+
+    /*
+     * Count number of strings in the array.  This is a
+     * potential(ly harmless) overestimate.
+     */
+    num_strings = 0;
+    for (
+        string = ((LPWSTR) kvi->Data);
+        string < ((LPWSTR) (kvi->Data + kvi->DataLength));
+        string++
+      ) {
+        if (!*string)
+          num_strings++;
+      }
+
+    /* Allocate and populate string array. */
+    values_len = (
+        /* The LPWSTR[] with a NULL terminator. */
+        ((num_strings + 1) * sizeof **Values) +
+        /* The data. */
+        kvi->DataLength +
+        /* A null terminator for the data. */
+        sizeof ***Values
+      );
+    *Values = wv_mallocz(values_len);
+    if (!*Values) {
+        DBG("Could not allocate value array for \"%S\"\n", ValueName);
+        status = STATUS_UNSUCCESSFUL;
+        goto err_value;
+      }
+    /* We know that LPWSTR alignment is a multiple of WCHAR alignment. */
+    string = ((LPWSTR) (*Values + num_strings + 1));
+    /* Copy the data. */
+    RtlCopyMemory(string, kvi->Data, kvi->DataLength);
+    /* Walk the data, filling the LPWSTR[] with values. */
+    for (i = 0; i < num_strings; i++) {
+        (*Values)[i] = string;
+        while (*string)
+          string++;
+        while (!*string)
+          string++;
+      }
+
+    err_value:
+
+    wv_free(kvi);
+    err_fetchkvi:
+
+    return status;
+  }
 
 /**
- * Store registry string value
+ * Store registry string value.
  *
- * @v reg_key     Registry key
- * @v value_name  Registry value name
- * @v value       String value to store
- * @ret ntstatus  NT status
+ * @v RegKey            Handle for the registry key to store the value in.
+ * @v ValueName         Registry value name.
+ * @v Value             String value to store.
+ * @ret NTSTATUS        The status of the operation.
  */
-winvblock__lib_func NTSTATUS
-registry__store_sz (
-  HANDLE reg_key,
-  LPCWSTR value_name,
-  LPWSTR value
- )
-{
-  UNICODE_STRING u_value_name;
-  SIZE_T value_len;
-  NTSTATUS status;
-
-  RtlInitUnicodeString ( &u_value_name, value_name );
-  value_len = ( ( wcslen ( value ) + 1 ) * sizeof ( value[0] ) );
-  status =
-    ZwSetValueKey ( reg_key, &u_value_name, 0, REG_SZ, value,
-                   ( ( winvblock__uint32 ) value_len ) );
-  if ( !NT_SUCCESS ( status ) )
-    {
-      DBG ( "Could not store value \"%S\": %x\n", value_name, status );
-      return status;
-    }
-
-  return STATUS_SUCCESS;
-}
+winvblock__lib_func NTSTATUS STDCALL WvlRegStoreSz(
+    HANDLE RegKey,
+    LPCWSTR ValueName,
+    LPWSTR Value
+   ) {
+    UNICODE_STRING u_value_name;
+    SIZE_T value_len;
+    NTSTATUS status;
+
+    RtlInitUnicodeString(&u_value_name, ValueName);
+    value_len = ((wcslen(Value) + 1) * sizeof Value[0]);
+    status = ZwSetValueKey(
+        RegKey,
+        &u_value_name,
+        0,
+        REG_SZ,
+        Value,
+        (winvblock__uint32) value_len
+      );
+    if (!NT_SUCCESS(status)) {
+        DBG("Could not store value \"%S\": %x\n", ValueName, status);
+        return status;
+      }
+
+    return STATUS_SUCCESS;
+  }
 
 /**
- * Store registry dword value
+ * Store registry DWORD value.
  *
- * @v reg_key     Registry key
- * @v value_name  Registry value name
- * @v value       String value to store, or NULL
- * @ret ntstatus  NT status
+ * @v RegKey            Handle for the registry key to store the value in.
+ * @v ValueName         Registry value name.
+ * @v Value             DWORD value to store, or NULL.
+ * @ret NTSTATUS        The status of the operation.
  */
-winvblock__lib_func NTSTATUS
-registry__store_dword (
-  HANDLE reg_key,
-  LPCWSTR value_name,
-  winvblock__uint32 value
- )
-{
-  UNICODE_STRING u_value_name;
-  NTSTATUS status;
-
-  RtlInitUnicodeString ( &u_value_name, value_name );
-  status =
-    ZwSetValueKey ( reg_key, &u_value_name, 0, REG_DWORD, &value,
-                   sizeof ( value ) );
-  if ( !NT_SUCCESS ( status ) )
-    {
-      DBG ( "Could not store value \"%S\": %x\n", value_name, status );
-      return status;
-    }
-
-  return STATUS_SUCCESS;
-}
+winvblock__lib_func NTSTATUS STDCALL WvlRegStoreDword(
+    HANDLE RegKey,
+    LPCWSTR ValueName,
+    winvblock__uint32 Value
+  ) {
+    UNICODE_STRING u_value_name;
+    NTSTATUS status;
+
+    RtlInitUnicodeString(&u_value_name, ValueName);
+    status = ZwSetValueKey(
+        RegKey,
+        &u_value_name,
+        0,
+        REG_DWORD,
+        &Value,
+        sizeof Value
+      );
+    if (!NT_SUCCESS(status)) {
+        DBG("Could not store value \"%S\": %x\n", ValueName, status);
+        return status;
+      }
+
+    return STATUS_SUCCESS;
+  }
 
 /**
- * Note BOOT.INI-style OsLoadOptions from registry
+ * Note BOOT.INI-/TXTSETUP.SIF-style OsLoadOptions from registry.
  *
- * @v w_str_ptr         Pointer to pointer to wide-char string to hold options
- * @ret ntstatus       NT status
+ * @v WStr              Pointer to pointer to wide-char string to hold options.
+ * @ret NTSTATUS        The status of the operation.
  *
  * The caller must eventually free the wide-char string.
  */
-NTSTATUS
-registry__note_os_load_opts (
-  LPWSTR * w_str_ptr
- )
-{
-  NTSTATUS status;
-  HANDLE control_key;
-
-  /*
-   * Open the Control key 
-   */
-  status =
-    registry__open_key
-    ( L"\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Control\\",
-      &control_key );
-  if ( !NT_SUCCESS ( status ) )
-    goto err_keyopen;
-
-  /*
-   * Put the SystemStartOptions value into a global 
-   */
-  status =
-    registry__fetch_sz ( control_key, L"SystemStartOptions", w_str_ptr );
-  if ( !NT_SUCCESS ( status ) )
-    goto err_fetchsz;
-
-  DBG ( "OsLoadOptions: %S\n", *w_str_ptr );
-
-err_fetchsz:
-
-  registry__close_key ( control_key );
-err_keyopen:
-
-  return status;
-}
+winvblock__lib_func NTSTATUS STDCALL WvlRegNoteOsLoadOpts(LPWSTR * WStr) {
+    NTSTATUS status;
+    HANDLE control_key;
+
+    /* Open the Control key. */
+    status = WvlRegOpenKey(
+        L"\\Registry\\Machine\\SYSTEM\\CurrentControlSet\\Control\\",
+        &control_key
+      );
+    if (!NT_SUCCESS(status))
+      goto err_keyopen;
+
+    /* Put the SystemStartOptions value into w_str. */
+    status = WvlRegFetchSz(control_key, L"SystemStartOptions", WStr);
+    if (!NT_SUCCESS(status))
+      goto err_fetchsz;
+
+    DBG("OsLoadOptions: %S\n", *WStr);
+
+    err_fetchsz:
+
+    WvlRegCloseKey(control_key);
+    err_keyopen:
+
+    return status;
+  }