The drive management information has a fixed value and a variable value. When managing these, they have separate structures.

Therefore, by taking the hash of the instance of the structure of the fixed value, the drive can be identified from the hash value. And this fixed value is “DRIVE_IDENTIFY_INFO”.

The structure uses an aggregate. For this reason, you can always initialize with {0}. In the case of an aggregate, a “method” of using external memory management cannot be included. However, since many functions that operate a drive require a direct memory operation, the aggregate is used once for receiving. Moving to a non-aggregate class only when used will give a better overall perspective. This eliminates the need to re-store the object instance in memory, pass it to the function, and pass over the return value to the object when using the function that operates the drive later. Of course, the fixed value is obtained only once, but in practice it is passed including the variable value, so even when updating the variable value, it is necessary to perform processing including the fixed value.