рд╡рд┐рдВрдбреЛрдЬ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╣реИ рдЬреЛ рдлрд╝рд╛рдЗрд▓ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рдореВрд╣ рдХреЛ рдХрд┐рд╕реА рдЗрдХрд╛рдИ рдореЗрдВ рд▓реЗрдирджреЗрди рдХреЛ рд╕рдорд░реНрдерди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдЗрд╕ рдЗрдХрд╛рдИ рдкрд░ рдХреНрд░рд┐рдпрд╛рдПрдВ рдкреГрдердХ рдФрд░ рдкрд░рдорд╛рдгреБ рд╣реИрдВ: рдЗрд╕реЗ рд╕реНрдерд╛рдпреА, рдпрд╛ рд▓реБрдврд╝рдХрд╛ рд╣реБрдЖ рдмрдирд╛рдХрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд╕рд╣рдордд рд╣реИрдВ? рд╣рдо рд╣рдореЗрд╢рд╛ рдПрдХ рд╕рд╣рдордд рд░рд╛рдЬреНрдп рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЕрдЧрд░ рдХреБрдЫ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрди рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреЗ рд╣реИрдВред
рдЬрдм рд╕реЗ рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрд╛, рдореИрдВ рд╣рдореЗрд╢рд╛ рдЗрди рд▓реЗрдирджреЗрди рдХреЗ рдЕрдВрджрд░ рд╕реЗ рджреБрдирд┐рдпрд╛ рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдФрд░ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐: рдореБрдЭреЗ рдлрд╝рд╛рдЗрд▓ рд▓реЗрдирджреЗрди рдХреЗ рдЕрдВрджрд░ рдХрд┐рд╕реА рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрджреНрднреБрдд рд╡рд┐рдзрд┐ рдорд┐рд▓реА, рд▓реЗрдХрд┐рди рдкреБрд╕реНрддрдХ рдХрд╛ рдорд╛рд░реНрдЬрд┐рди рдЙрд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдо рд╣реИ ред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
рдЖрдЗрдП рдЬрд╛рдиреЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдореЗрд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рд╕рдордЭреЗрдВ рдХрд┐ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдХреНрдпрд╛ рд╣реИрдВред
рдХреЛрд╖
рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реИрдВ: GitHub рдкрд░ TransactionMaster ред
рд╕рд┐рджреНрдзрд╛рдВрдд
Transactional NTFS, рдпрд╛ TxF рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди, рд╡рд┐рдВрдбреЛрдЬ рд╡рд┐рд╕реНрдЯрд╛ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рдФрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдФрд░ рдУрдПрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдЙрдмрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдХреЛрдб рдХреЛ рдХрд╛рдлреА рд╕рд░рд▓ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛ рджрд┐рдпрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛ рдХрд╛рд░реНрдп рдХреЛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдкреВрд░реНрдг ACID рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрд░реВ рд╣реБрдЖ - рдмрд╕ рдкреВрдЫреЗрдВред
рдЗрд╕ рддрдХрдиреАрдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирдП рдПрдкреАрдЖрдИ рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝реЗ рдЧрдП рдереЗ рдЬреЛ рдореМрдЬреВрджрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рджреЛрд╣рд░рд╛рддреЗ рдереЗ, рдПрдХ рдирдпрд╛ рдкреИрд░рд╛рдореАрдЯрд░ - рдПрдХ рд▓реЗрдирджреЗрди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рд▓реЗрдирджреЗрди рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ OS рдореЗрдВ рдХрдИ рдХрд░реНрдиреЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдлрд╛рдЗрд▓, рдкреНрд░реЛрд╕реЗрд╕ рдФрд░ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕реЗ рдПрдХ рдмрди рдЧрдпрд╛ рд╣реИред рд╕рд░рд▓рддрдо рдорд╛рдорд▓реЗ рдореЗрдВ, рд▓реЗрди-рджреЗрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ CreateTransaction
рдХрд╣рдХрд░ рдПрдХ рд▓реЗрди-рджреЗрди рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдореЗрдВ рд╢рд╛рдорд┐рд▓ CreateTransaction
, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ ( CreateFileTransacted
, MoveFileTransacted
, DeleteFileTransacted
рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ), рдФрд░ CommitTransaction
/ RollbackTransaction
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЗрди-рджреЗрди рд╡рд╛рдкрд╕ рдХрд░рдирд╛ред
рдЕрдм рдЖрдЗрдП рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ kernel32.dll
рдЬреИрд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рдПрдкреАрдЖрдИ рдкрд░рдд, рдУрдПрд╕ рдХреЗ рдХрд░реНрдиреЗрд▓ рдкрд░ рд╕реАрдзреЗ рдирд┐рдпрдВрддреНрд░рдг рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЛрдб - ntdll.dll
рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЕрдореВрд░реНрдд рдкрд░рдд рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдпрд╣рд╛рдВ рдПрдХ рдЖрд╢реНрдЪрд░реНрдп рд╣рдореЗрдВ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ: ntdll рдореЗрдВ рд▓реЗрди-рджреЗрди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдХреЛрдИ рджреЛрд╣рд░рд╛рд╡ рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕реЗ рдХрд░реНрдиреЗрд▓ рдореЗрдВ ред

рдлрд┐рд░ рднреА, Native API рд╕реЗ рдЗрди рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рд╕рдордп рд╕реЗ рдирд╣реАрдВ рдмрджрд▓реЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╡реЗ рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕ рд▓реЗрдирджреЗрди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХрд╣реАрдВ рдФрд░ рд╕реЗ рд╕реАрдЦреЗрдВрдЧреЗред рдкрд░ рдХрд╣рд╛рдБ рд╕реЗ? рдЙрддреНрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдереНрд░реЗрдб рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдлрд╝реАрд▓реНрдб рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд▓реЗрдирджреЗрди рдХрд╛ рд╣реИрдВрдбрд▓ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред рдореЗрдореЛрд░реА рдХрд╛ рдХреНрд╖реЗрддреНрд░ рдЬрд╣рд╛рдВ рдпрд╣ рд╕реНрдерд┐рдд рд╣реИ, рдЯреАрдИрдмреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреНрд░рд╡рд╛рд╣ рдкрд░реНрдпрд╛рд╡рд░рдг рдмреНрд▓реЙрдХред рдЬреНрдЮрд╛рдд рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ, рдЕрдВрддрд┐рдо рддреНрд░реБрдЯрд┐ рдХреЛрдб рдФрд░ рд╕реНрдЯреНрд░реАрдо рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рднреА рд╡рд╣рд╛рдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, *Transacted
рдкреНрд░рддреНрдпрдп рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рд╡рд░реНрддрдорд╛рди рд▓реЗрдирджреЗрди рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреЛ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рдкреНрд░рддреНрдпрдп рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╕рдорд╛рди рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдкрд┐рдЫрд▓реЗ рдорд╛рди рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ RtlGetCurrentTransaction
/ RtlSetCurrentTransaction
рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ RtlSetCurrentTransaction
рд╕реЗ ntdll
ред рд╡рд╛рд╣ рдХреЗ рд╕рд╛рде рдорд╛рдорд▓реЗ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдХреЛрдб рдмрд╣реБрдд рд╕реАрдзрд╛ рд╣реИ, рдЬреЛ рдиреАрдЪреЗ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред
рдпрд╣ рд╕рдм рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреНрдпрд╛ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ? рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдореЛрд░реА рдореЗрдВ рдПрдХ рдЪрд░ рдХреЛ рдмрджрд▓рдХрд░, рд╣рдо рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХрд┐рд╕ рд▓реЗрдирджреЗрди рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдЬрд╛рд▓ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдмрд╕ рд▓реЗрди-рджреЗрди рд╡рд┐рд╡рд░рдгрдХ рдХреЛ рд▓рдХреНрд╖реНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд░реЗрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдереНрд░реЗрдб рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдореЗрдореЛрд░реА рдореЗрдВ рдХреБрдЫ рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рд╕рд╣реА рдХрд░реЗрдВред рдпрд╣ рдкреНрд░рд╛рдердорд┐рдХ рд▓рдЧрддрд╛ рд╣реИ, рдЪрд▓реЛ рдЗрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ!
рдиреБрдХрд╕рд╛рди
рдмрд╣реБрдд рдкрд╣рд▓реЗ рдкреНрд░рдпреЛрдЧреЛрдВ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╣реИ: рд╕реБрджреВрд░ рдкреНрд░рдмрдВрдзрдХ , рдЬрд┐рд╕реЗ рдореИрдВ рд╡рд┐рдВрдбреЛрдЬ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдХреЗ рдмрдЬрд╛рдп рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдордХреНрдЦреА рдкрд░ рд▓реЗрдирджреЗрди рдХреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдЪ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдЙрдирдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рджреБрдирд┐рдпрд╛ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдРрд╕реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рднреА рдереЗ рдЬреЛ рдлрд╝рд╛рдЗрд▓ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рд▓рдЧрд╛рддрд╛рд░ рдирдП рдзрд╛рдЧреЗ рдмрдирд╛рддреЗ рд╣реИрдВред рдФрд░ рдореВрд▓ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ, рдпрд╣ рдПрдХ рдЕрдВрддрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдереНрд░реЗрдб рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИ (рдЗрд╕ рддрдереНрдп рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ рдХрд┐ "рдЕрдХреНрд╖рд╛рдВрд╢" рдпрд╣рд╛рдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ)ред рджреВрд╕рд░реА рд╢реНрд░реЗрдгреА рдХреЗ рдПрдХ рдЖрд╡реЗрджрди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкреЛрд░реНрдЯ рдХреА рдЧрдИ WinFile рд╣реИ ред
рдЯреНрд░реИрдХрд┐рдВрдЧ рдбреАрдПрд▓рдПрд▓
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдзрд╛рдЧрд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдП рд▓реЗрдирджреЗрди рдХреЗ рдмрд╛рдж рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреА рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЯреНрд░реИрдХрд┐рдВрдЧ рд▓рдХреНрд╖реНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рднреАрддрд░ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рд╛рдердорд┐рдХ рд╣реИред рдпрд╣ рдПрдХ DLL рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдФрд░ рдирдпрд╛ DLL_THREAD_ATTACH
рдмрдирд╛рддреЗ рд╕рдордп рдореЙрдбреНрдпреВрд▓ рд▓реЛрдбрд░ рд╣рд░ * рдмрд╛рд░ DLL_THREAD_ATTACH
рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛ред рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдХреЗ, рдореИрдВрдиреЗ рдПрдХ рджрд░реНрдЬрди рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рддрдп рдХреАред
* рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ, рдПрдХ рдХреЙрд▓ рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрднреА-рдХрднреА рдореЗрд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП, рдореЙрдбреНрдпреВрд▓ рд▓реЛрдбрд░ рдХреЗ рдХрд╛рдордХрд╛рдЬреА рдкреВрд▓ рд╕реЗ рд╣реА рдЕрдкрд╡рд╛рдж рд╣реИрдВред рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ DLL рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдмреВрдЯрд▓реЛрдбрд░ рд▓реЙрдХ рдХреЗ рддрд╣рдд рдЕрдзрд┐рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ: рдЖрдк рдЗрд╕ рд╕рдордп рдирдП рдореЙрдбреНрдпреВрд▓ рд▓реЛрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдФрд░ рд▓реЛрдбрд░ рдереНрд░реЗрдбреНрд╕, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рддреЗ рд╣реБрдП, рдмрд╕ рдпрд╣реА рдХрд░реЗрдВред рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдкрд╡рд╛рдж рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдпрджрд┐ рдЖрдк THREAD_CREATE_FLAGS_SKIP_THREAD_ATTACH
рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп THREAD_CREATE_FLAGS_SKIP_THREAD_ATTACH
рдХреЛ рдПрдХ рдзреНрд╡рдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдореМрдЬреВрджрд╛ DLL рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдереНрд░реЗрдб рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░, рдХреНрд░рдорд╢рдГ, рдЧрддрд┐рд░реЛрдзред рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред
рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ
рдЙрди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреА рддреАрд╕рд░реА, рдЕрдВрддрд┐рдо рд╢реНрд░реЗрдгреА рдмрдиреА рд╣реБрдИ рд╣реИ рдЬреЛ рдЕрднреА рднреА рдПрдХ рд▓реЗрдирджреЗрди рдХреЗ рдЕрдВрджрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╡рд┐рдВрдбреЛрдЬ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рд╣реИред рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдЯреАрдХ рдирд┐рджрд╛рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдЖрд╡реЗрджрди рдЬрдЯрд┐рд▓ рд╣реИ, рдФрд░ рд▓реЗрдирджреЗрди рдХреЗ рдЕрдВрджрд░ рд╣реЙрдЯ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдЗрд╕реЗ рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╢рд╛рдпрдж рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдХрдИ рдЦреБрд▓реЗ рдлрд╝рд╛рдЗрд▓ рд╡рд┐рд╡рд░рдг рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдирдП рд╕рдВрджрд░реНрдн рдореЗрдВ рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИрдВред рдпрд╛ рд╢рд╛рдпрдж рдпрд╣ рдХреБрдЫ рдФрд░ рд╣реИред рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдорджрдж рдорд┐рд▓рддреА рд╣реИ, рддрд╛рдХрд┐ рдпрд╣ рд▓реЗрдирджреЗрди рдореЗрдВ рд╢реБрд░реВ рд╕реЗ рд╣реА рдХрд╛рдо рдХрд░реЗред рдлрд┐рд░ рдХреЛрдИ рд╡рд┐рд╕рдВрдЧрддрд┐рдпрд╛рдВ рдкреИрджрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдФрд░ рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдирдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝рд╛, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдирдП рдкреНрд░рд╡рд╛рд╣ рдХрд╛ рд▓реЗрдирджреЗрди рдФрд░ рдЯреНрд░реИрдХрд┐рдВрдЧ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд┐рд▓рдВрдмрд┐рдд рд╣реИред рдФрд░ рддреБрдо рдЬрд╛рдирддреЗ рд╣реЛ рдХреНрдпрд╛, рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛! рд╕рд╣реА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд╛рд╣рд░ COM рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╕рдордп рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдиреНрдпрдерд╛, рд╕рдм рдХреБрдЫ рд╕реНрдерд┐рд░ рд╣реИред
WoW64 рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ?
64-рдмрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо рдкрд░ 32-рдмрд┐рдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдПрдХ рдЕрддреНрдпрдВрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдг рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрдХреНрд╕рд░ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЛ рдЬрдЯрд┐рд▓ рдмрдирд╛рддреА рд╣реИред рдореИрдВрдиреЗ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ Rtl[Get/Set]CurrentTransaction
рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рдорд╛рди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рднрд┐рдиреНрди рд╣реИред рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдЗрд╕ рддрдереНрдп рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ рдХрд┐ WoW64 рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдереНрд░реЗрдбреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рджреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдмреНрд▓реЙрдХ рд╣реИрдВред рдЙрдирдХреЗ рдкрд╛рд╕ рд╕реВрдЪрдХ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЖрдХрд╛рд░ рд╣реИрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕реБрд╕рдВрдЧрдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдмрдирд╛рдП рд░рдЦрдирд╛ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд▓реЗрдирджреЗрди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, 64-рдмрд┐рдЯ рдЯреАрдИрдмреА рдкреВрд░реНрд╡рддрд╛ рд▓реЗрддрд╛ рд╣реИред рдЬрдм рд╣рдо рджреВрд░ рд╕реЗ рд▓реЗрди-рджреЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рднреВрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред рдЕрдВрдд рдореЗрдВ, WoW64 рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╣рдорд╛рд░реЗ рдЯреНрд░реИрдХрд┐рдВрдЧ DLL рдХреА рдЕрддрд┐рд░рд┐рдХреНрдд 32-рдмрд┐рдЯ рдкреНрд░рддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЕрдирд╛рд░рдХреНрд╖рд┐рдд рдореБрджреНрджреЗ
рд╢реЛрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ - рдмрд╣реБрдд рдкрд╣рд▓реЗ рдкрд░рд┐рджреГрд╢реНрдп рдЬреЛ рдорди рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН рдЗрд╕ рдореЛрдб рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЗрдВрд╕реНрдЯреЙрд▓рд░реЛрдВ рдХрд╛ рд▓реЙрдиреНрдЪ - рдЕрднреА рддрдХ рдЪрд╛рд▓реВ рдирд╣реАрдВ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдЙрд╕реА рд▓реЗрдирджреЗрди рдореЗрдВ рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣рд╛рдВ рдХрдИ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рдореИрдВ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдмрдирд╛рддрд╛ рд╣реИ, рддреЛ рд▓реЗрдирджреЗрди рдХреЗ рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрднреА рднреА рдмрд╣реБрдд рдЬрд▓реНрдж рд╣реИред
рджреВрд╕рд░реЗ, рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдорд╛рдорд▓рд╛ рдЬреЛ рд▓реЗрдирджреЗрди рдХреЗ рдмрд╛рд╣рд░ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд╛рдпрд░рд╕ рдереЗ рдЬреЛ рднреЛрд▓реЗ рдПрдВрдЯреАрд╡рд╛рдпрд░рд╕ рдХреЛ рдЗрд╕ рддрд░рд╣ рдмрд░рдЧрд▓рд╛рддреЗ рдереЗ: рдЗрд╕реЗ рдПрдХ рд▓реЗрди-рджреЗрди рдореЗрдВ рдЕрдирдкреИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЦреБрдж рдХреЛ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдФрд░ рдлрд┐рд░ рд▓реЗрди-рджреЗрди рдХреЛ рд╡рд╛рдкрд╕ рд▓реЗ рд▓рд┐рдпрд╛ред рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рд╣реИред рдПрдВрдЯреАрд╡рд╛рдпрд░рд╕ рддрдп рдХрд░ рд╕рдХрддрд╛ рдерд╛ рдХрд┐ рд╕реНрдХреИрди рдХрд░рдиреЗ рдФрд░ рдЦрддрд░реЗ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд╣реАрдВ рд╣реИред рд╣рдореЗрдВ рд░рдЪрдирд╛рддреНрдордХ рд╕рдорд╛рдзрд╛рди рдкрд░ рднреА рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐, рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, NtCreateUserProcess
(рдФрд░, рддрджрдиреБрд╕рд╛рд░, CreateProcess
) рд╡рд░реНрддрдорд╛рди рд▓реЗрдирджреЗрди рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рдмреЗрд╢рдХ, NtCreateProcessEx
рд╣рдореЗрд╢рд╛ рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдВрдЧрддрддрд╛ рдореБрджреНрджреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЙрдкрджреНрд░рд╡ рдХреА рдЙрдореНрдореАрдж рд╣реИред рдореИрдВ рдХреБрдЫ рд╕реЛрдЪреВрдВрдЧрд╛
рдФрд░ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдХрд╣рд╛рдВ рд╣реИрдВ?
рдЬрд░рд╛ рддрд╕реНрд╡реАрд░ рджреЗрдЦрд┐рдПред рдпрд╣рд╛рдВ, рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдо рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓реЗрдирджреЗрди рд╕реЗ рдПрдХ рд╣реА рдлрд╝реЛрд▓реНрдбрд░ рдХреА рд╕рд╛рдордЧреНрд░реА рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред рдХреВрд▓, рд╣реИ рдирд╛?

рдФрд░ рдлрд┐рд░ рднреА, рдореЗрд░рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╡рд░рдг рдХрд╛ рдЕрднрд╛рд╡ рд╣реИ - рд╕реБрд░рдХреНрд╖рд╛ рд╕реАрдорд╛ ред рдмреЗрд╢рдХ, рдпрд╣ рдХреБрдЫ рдХрдВрдкрдирд┐рдпреЛрдВ рдХреЛ рдлреБрд▓-рд╕реИрдВрдб рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдХреА рдЖрдбрд╝ рдореЗрдВ рд╕рдорд╛рди рд╢рд┐рд▓реНрдк рдмреЗрдЪрдиреЗ рд╕реЗ рдирд╣реАрдВ рд░реЛрдХрддрд╛ рд╣реИ, рдЙрди рдкрд░ рд╢рд░реНрдо рдХреА рдмрд╛рдд рд╣реИ, рдореИрдВ рдХреНрдпрд╛ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВред рдФрд░, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕рдВрднрд╡ рд▓рдЧрддрд╛ рд╣реИ, рд╣рдо рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдЕрдкрдиреА рд╕реНрдореГрддрд┐ рдореЗрдВ рдПрдХ рдЪрд░ рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рдХреИрд╕реЗ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рд╣рдо рдПрдХ рдбрд┐рдмрдЧрд░ рд╣реЛ? - рдореЗрд░реЗ рдкрд╛рд╕ рд╕реНрдЯреЛрд░ рдореЗрдВ рдПрдХ рд░рдордгреАрдп рдЪрд╛рд▓ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдФрд░ рдЬреЛ рдореИрдВ рдЬрд╛рдирддрд╛ рд╣реВрдВ, рд╡рд╣ рдкрд╣рд▓рд╛ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдмрдирд╛рдПрдВ, рдЬрд┐рд╕реЗ рдбреНрд░рд╛рдЗрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рдХрд░реЗрдЧрд╛ред рддрдм рддрдХ, рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ, рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ AppContainer рддрдХрдиреАрдХ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ ред рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
GitHub рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА: TransactionMaster ред
рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдПрдХ рд╣реА рд▓реЗрдЦ ред