size_t hivex_value_struct_length (hive_h *h, hive_value_h value) { size_t key_len; errno = 0; key_len = hivex_value_key_len (h, value); if (key_len == 0 && errno != 0) return 0; /* -1 to avoid double-counting the first name character */ return key_len + sizeof (struct ntreg_vk_record) - 1; }
static PyObject * py_hivex_value_key_len (PyObject *self, PyObject *args) { PyObject *py_r; size_t r; hive_h *h; PyObject *py_h; long val; if (!PyArg_ParseTuple (args, (char *) "Ol:hivex_value_key_len", &py_h, &val)) return NULL; h = get_handle (py_h); r = hivex_value_key_len (h, val); if (r == 0) { PyErr_SetString (PyExc_RuntimeError, strerror (errno)); return NULL; } py_r = PyLong_FromLongLong (r); return py_r; }