25 static NTSTATUS StdOutNetworkTracertThreadStart(
56 return STATUS_SUCCESS;
63 HANDLE pipeWriteHandle = INVALID_HANDLE_VALUE;
66 if (CreatePipe(&context->
PipeReadHandle, &pipeWriteHandle, NULL, 0))
68 HANDLE threadHandle = NULL;
69 STARTUPINFO startupInfo = {
sizeof(startupInfo) };
73 startupInfo.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
74 startupInfo.hStdInput = GetStdHandle(STD_INPUT_HANDLE);
75 startupInfo.hStdOutput = pipeWriteHandle;
76 startupInfo.hStdError = pipeWriteHandle;
77 startupInfo.wShowWindow = SW_HIDE;
82 L
"%s\\system32\\tracert.exe %s",
83 USER_SHARED_DATA->NtSystemRoot,
91 L
"%s\\system32\\tracert.exe -d %s",
92 USER_SHARED_DATA->NtSystemRoot,
101 NtSetInformationObject(
122 NtClose(pipeWriteHandle);
125 if (threadHandle =
PhCreateThread(0, StdOutNetworkTracertThreadStart, context))
126 NtClose(threadHandle);
129 return STATUS_SUCCESS;