[TCPSVCS] Remove hardcoded C drive letter (#800)

CORE-13228, CORE-13235

For USETUP, add a comment about why the code uses it when adding a boot-sector boot entry to NTLDR. CORE-13226
This commit is contained in:
Katayama Hirofumi MZ 2018-08-28 19:45:03 +09:00 committed by Hermès BÉLUSCA - MAÏTO
parent 9d0596afe1
commit b0a1cb52be
3 changed files with 12 additions and 3 deletions

View file

@ -12,7 +12,7 @@
#define DEBUG
static LPWSTR lpEventSource = L"tcpsvcs";
static LPCWSTR lpLogFileName = L"C:\\tcpsvcs_log.log";
static WCHAR szLogFileName[MAX_PATH];
static HANDLE hLogFile = NULL;
static OVERLAPPED olWrite;
@ -47,7 +47,7 @@ LogToEventLog(LPCWSTR lpMsg,
static BOOL
OpenLogFile()
{
hLogFile = CreateFileW(lpLogFileName,
hLogFile = CreateFileW(szLogFileName,
GENERIC_WRITE,
FILE_SHARE_READ,
NULL,
@ -212,13 +212,19 @@ InitLogging()
#ifdef DEBUG
BOOL bRet = FALSE;
if (!GetEnvironmentVariableW(L"SystemDrive", szLogFileName, ARRAYSIZE(szLogFileName)))
{
StringCchCopyW(szLogFileName, ARRAYSIZE(szLogFileName), L"C:");
}
StringCchCatW(szLogFileName, ARRAYSIZE(szLogFileName), L"\\tcpsvcs_log.log");
ZeroMemory(&olWrite, sizeof(OVERLAPPED));
olWrite.Offset = 0xFFFFFFFF;
olWrite.OffsetHigh = 0xFFFFFFFF;
olWrite.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
if (olWrite.hEvent)
{
DeleteFileW(lpLogFileName);
DeleteFileW(szLogFileName);
if (OpenLogFile())
{

View file

@ -9,6 +9,7 @@
#define _INC_WINDOWS
#include <winsock2.h>
#include <tchar.h>
#include <strsafe.h>
#define LOG_FILE 1
#define LOG_EVENTLOG 2

View file

@ -2378,6 +2378,8 @@ InstallFatBootcodeToPartition(
/* Update 'boot.ini' */
CombinePaths(DstPath, ARRAYSIZE(DstPath), 2, SystemRootPath->Buffer, L"boot.ini");
/* Windows' NTLDR loads an external bootsector file when the specified drive
letter is C:, otherwise it will interpret it as a boot DOS path specifier. */
DPRINT1("Update 'boot.ini': %S\n", DstPath);
Status = UpdateBootIni(DstPath,
L"C:\\bootsect.ros",