Eu descobri o que estou tentando fazer. Eu estava querendo modificar arquivos da maneira que o Windows Update faz. Depois de experimentar, eu encontrei isso.
Crie um arquivo XML com isso.
<?xml version='1.0' encoding='utf-8'?>
<PendingTransaction Version="3.1">
<POQ postAction="reboot">
<MoveFile source="\??\C:\csrss.exe" destination="\??\C:\Windows\System32\csrss.exe"/>
</POQ>
</PendingTransaction>
Em seguida, modifique o valor SetupExecute
na chave HKLM\SYSTEM\CurrentControlSet\Control\Session Manager
para conter C:\Windows\System32\poqexec.exe /displayprogress \??\[PATH TO XML]
Isso faz com que o Windows processe a "fila de operações primitiva" antes de inicializar.