This document more useful, and reference:
https://www.cnblogs.com/davidwang456/p/10361550.html>https://www.cnblogs.com/davidwang456/p/10361550.html
https://www.cnblogs.com/helloDuo/p/10704117.html