VBからのWin32APIでもいいですか?

Dim hFile As Long
Dim udtProcInfo As PROCESS_INFORMATION

hFile = CreateFile( _
"OUTPUT.txt", _
GENERIC_WRITE + GENERIC_READ, _
FILE_SHARE_READ, 0,CREATE_ALWAYS, _
FILE_ATTRIBUTE_NORMAL + FILE_FLAG_OVERLAPPED, 0)
ZeroMemory si LenB(si)
si.cb = LenB(si)
si.hStdOutput = hFile
si.hStdError = hFile
si.dwFlags = STARTF_USESTDHANDLES
rc = CreateProcess( _
0, "printf.exe", 0, 0, 1, 0, 0, 0, _
udtStartInfo,udtProcInfo)

OUTPUT.txtは出来ました。 
CreateProcessも一応通ります。
printf.exeは main(){printf("\nhelle world");}です。
でもOUTPUT.txtは、空のままです。

CreateProcessの5番目のパラメータを0にして
notepad.exeならうまく行きます。

なんでじゃい!?