Approximately. (you could... gasp... just use a checksum bit (which would at least catch half the corruptions). Heck you could just store the damn thing twice and then if they differ you know something's gone wrong, and it's time to look for a backup. I'm not
suggesting you make it such that you can restore from the check data or anything.)
But that really doesn't work, because it's impossible to know whether it's the checksum that's corrupt or the data itself. It's just too small a datastructure to try and implement that sort of validation. Not to mention the actual overhead of trying to compute
that in any reasonable way.
What's more, it's not a very effective strategy. Registry corruption is usually caused by one of two things:
1) A crash during read/write operations, leading to an on-disk corrupt structure. At that point you're looking a significant overhead on every read/write operation for the sake of a tiny possibilty of data recovery in the event of a crash.
2) Applications writing invalid data. No amount of checksumming helps there because what's getting written is technically what the application wants to write. Enforcing type-safety on the registry might help, but again it's a lot of overhead when applications
are supposed to be doing the right thing.