No estoy seguro pero creo que tu problema puede estar en:
Invoke(Finished)
Si lo que quieres es que el método se invoke con cada archivo entonces está bien. Pero si lo que quieres es que se invoque al final de todo el procedimiento entonces deberías ponerlo después del "next".
Tampoco creo que haya necesidad de cerrar los streams en cada iteración por lo tanto también deberías provar dejando el código como sigue:
Dim SR As System.IO.StreamReader = myprocess.StandardOutput
Dim SW As System.IO.StreamWriter = myprocess.StandardInput
Dim comando As String
Dim cmdir As String
Dim nombre As String
For Each archivo As String In My.Computer.FileSystem.GetFiles(midirectorio, FileIO.SearchOption.SearchAllSubDirectories, "*.t01")
nombre = My.Computer.FileSystem.GetName(archivo)
cmdir = "cd " & midirectorio
comando = "runpkr00.exe -d " & nombre
SW.WriteLine(cmdir)
SW.WriteLine(comando)
Results = SR.ReadToEnd
Invoke(Finished)
Next
SW.Close()
SR.Close()
End Sub
Para dejar más limpio el bucle.