pOrigMBAddress = (pNtCreateFile)
GetProcAddress(GetModuleHandle("NtDLL.dll"), // get address of original
"NtCreateFile");
Делают для того, чтобы он мог своими силами инициализировать имеющиеся у него данные. Допустим, инициализируем пустым дескриптором, а там уже разберёмся с файлом и попробуем заменить пустой на правильный — или поднять тревогу.