Skip to content

Commit 2e35277

Browse files
committed
Fix vs2019 SAL annotations
1 parent 7c483ce commit 2e35277

23 files changed

+141
-65
lines changed

ProcessHacker/ProcessHacker.vcxproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@
114114
<AdditionalLibraryDirectories>$(SolutionDir)phlib\bin\$(Configuration)$(PlatformArchitecture);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
115115
<ModuleDefinitionFile>ProcessHacker.def</ModuleDefinitionFile>
116116
<DelayLoadDLLs>advapi32.dll;aclui.dll;comdlg32.dll;comctl32.dll;gdi32.dll;iphlpapi.dll;oleaut32.dll;ole32.dll;shell32.dll;shlwapi.dll;user32.dll;uxtheme.dll;version.dll;winhttp.dll;winsta.dll;ws2_32.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
117-
<AdditionalOptions>/DEPENDENTLOADFLAG:0xA00 %(AdditionalOptions)</AdditionalOptions>
117+
<AdditionalOptions>/DEPENDENTLOADFLAG:0x800 %(AdditionalOptions)</AdditionalOptions>
118118
</Link>
119119
<ResourceCompile>
120120
<PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions);$(ExternalCompilerOptions)</PreprocessorDefinitions>
@@ -147,7 +147,7 @@
147147
<AdditionalLibraryDirectories>$(SolutionDir)phlib\bin\$(Configuration)$(PlatformArchitecture);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
148148
<ModuleDefinitionFile>ProcessHacker.def</ModuleDefinitionFile>
149149
<DelayLoadDLLs>advapi32.dll;aclui.dll;comdlg32.dll;comctl32.dll;gdi32.dll;iphlpapi.dll;oleaut32.dll;ole32.dll;shell32.dll;shlwapi.dll;user32.dll;uxtheme.dll;version.dll;winhttp.dll;winsta.dll;ws2_32.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
150-
<AdditionalOptions>/DEPENDENTLOADFLAG:0xA00 %(AdditionalOptions)</AdditionalOptions>
150+
<AdditionalOptions>/DEPENDENTLOADFLAG:0x800 %(AdditionalOptions)</AdditionalOptions>
151151
</Link>
152152
<ResourceCompile>
153153
<PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions);$(ExternalCompilerOptions)</PreprocessorDefinitions>
@@ -188,7 +188,7 @@
188188
<ModuleDefinitionFile>ProcessHacker.def</ModuleDefinitionFile>
189189
<DelayLoadDLLs>advapi32.dll;aclui.dll;comdlg32.dll;comctl32.dll;gdi32.dll;iphlpapi.dll;oleaut32.dll;ole32.dll;shell32.dll;shlwapi.dll;user32.dll;uxtheme.dll;version.dll;winhttp.dll;winsta.dll;ws2_32.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
190190
<GenerateDebugInformation>true</GenerateDebugInformation>
191-
<AdditionalOptions>/DEPENDENTLOADFLAG:0xA00 %(AdditionalOptions)</AdditionalOptions>
191+
<AdditionalOptions>/DEPENDENTLOADFLAG:0x800 %(AdditionalOptions)</AdditionalOptions>
192192
</Link>
193193
<ResourceCompile>
194194
<PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions);$(ExternalCompilerOptions)</PreprocessorDefinitions>
@@ -227,7 +227,7 @@
227227
<ModuleDefinitionFile>ProcessHacker.def</ModuleDefinitionFile>
228228
<DelayLoadDLLs>advapi32.dll;aclui.dll;comdlg32.dll;comctl32.dll;gdi32.dll;iphlpapi.dll;oleaut32.dll;ole32.dll;shell32.dll;shlwapi.dll;user32.dll;uxtheme.dll;version.dll;winhttp.dll;winsta.dll;ws2_32.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
229229
<GenerateDebugInformation>true</GenerateDebugInformation>
230-
<AdditionalOptions>/DEPENDENTLOADFLAG:0xA00 %(AdditionalOptions)</AdditionalOptions>
230+
<AdditionalOptions>/DEPENDENTLOADFLAG:0x800 %(AdditionalOptions)</AdditionalOptions>
231231
</Link>
232232
<ResourceCompile>
233233
<PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions);$(ExternalCompilerOptions)</PreprocessorDefinitions>

ProcessHacker/affinity.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ VOID PhShowProcessAffinityDialog(
6868
);
6969
}
7070

71+
_Success_(return)
7172
BOOLEAN PhShowProcessAffinityDialog2(
7273
_In_ HWND ParentWindowHandle,
7374
_In_ ULONG_PTR AffinityMask,

ProcessHacker/anawait.c

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,9 @@ static BOOLEAN NTAPI PhpWalkThreadStackAnalyzeCallback(
275275
PANALYZE_WAIT_CONTEXT context = (PANALYZE_WAIT_CONTEXT)Context;
276276
PPH_STRING name;
277277

278+
if (!context)
279+
return TRUE;
280+
278281
name = PhGetSymbolFromAddress(
279282
context->SymbolProvider,
280283
(ULONG64)StackFrame->PcAddress,
@@ -688,7 +691,8 @@ static BOOLEAN PhpWaitUntilThreadIsWaiting(
688691
return isWaiting;
689692
}
690693

691-
static VOID PhpGetThreadLastSystemCallNumber(
694+
_Success_(return)
695+
static BOOLEAN PhpGetThreadLastSystemCallNumber(
692696
_In_ HANDLE ThreadHandle,
693697
_Out_ PUSHORT LastSystemCallNumber
694698
)
@@ -698,7 +702,10 @@ static VOID PhpGetThreadLastSystemCallNumber(
698702
if (NT_SUCCESS(PhGetThreadLastSystemCall(ThreadHandle, &lastSystemCall)))
699703
{
700704
*LastSystemCallNumber = lastSystemCall.SystemCallNumber;
705+
return TRUE;
701706
}
707+
708+
return FALSE;
702709
}
703710

704711
static NTSTATUS PhpWfsoThreadStart(
@@ -844,32 +851,35 @@ static PPH_STRING PhpaGetHandleString(
844851
PhGetHandleInformation(
845852
ProcessHandle,
846853
Handle,
847-
-1,
854+
ULONG_MAX,
848855
NULL,
849856
&typeName,
850857
NULL,
851858
&name
852859
);
853-
PH_AUTO(typeName);
854-
PH_AUTO(name);
855860

856861
if (typeName && name)
857862
{
858863
result = PhaFormatString(
859-
L"Handle 0x%Ix (%s): %s",
860-
Handle,
864+
L"Handle 0x%lx (%s): %s",
865+
HandleToUlong(Handle),
861866
typeName->Buffer,
862867
!PhIsNullOrEmptyString(name) ? name->Buffer : L"(unnamed object)"
863868
);
864869
}
865870
else
866871
{
867872
result = PhaFormatString(
868-
L"Handle 0x%Ix: (error querying handle)",
869-
Handle
873+
L"Handle 0x%lx: (error querying handle)",
874+
HandleToUlong(Handle)
870875
);
871876
}
872877

878+
if (typeName)
879+
PhDereferenceObject(typeName);
880+
if (name)
881+
PhDereferenceObject(name);
882+
873883
return result;
874884
}
875885

ProcessHacker/appsup.c

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -940,7 +940,7 @@ VOID PhCopyListViewInfoTip(
940940
memcpy(
941941
&GetInfoTip->pszText[copyIndex],
942942
Tip->Buffer,
943-
copyLength * 2
943+
copyLength * sizeof(WCHAR)
944944
);
945945
GetInfoTip->pszText[copyIndex + copyLength] = UNICODE_NULL;
946946
}
@@ -1730,8 +1730,8 @@ BOOLEAN PhInsertCopyCellEMenuItem(
17301730
_In_ PPH_TREENEW_COLUMN Column
17311731
)
17321732
{
1733-
PPH_EMENU_ITEM parentItem;
1734-
ULONG indexInParent;
1733+
PPH_EMENU_ITEM parentItem = NULL;
1734+
ULONG indexInParent = 0;
17351735
PPH_COPY_CELL_CONTEXT context;
17361736
PH_STRINGREF columnText;
17371737
PPH_STRING escapedText;
@@ -1834,8 +1834,8 @@ BOOLEAN PhInsertCopyListViewEMenuItem(
18341834
_In_ HWND ListViewHandle
18351835
)
18361836
{
1837-
PPH_EMENU_ITEM parentItem;
1838-
ULONG indexInParent;
1837+
PPH_EMENU_ITEM parentItem = NULL;
1838+
ULONG indexInParent = 0;
18391839
PPH_COPY_ITEM_CONTEXT context;
18401840
PPH_STRING columnText = NULL;
18411841
PPH_STRING escapedText;
@@ -2168,10 +2168,9 @@ HRESULT PhRunAsAdminTask(
21682168
IRegisteredTask* taskRegisteredTask = NULL;
21692169
IRunningTask* taskRunningTask = NULL;
21702170

2171-
status = CoCreateInstance(
2171+
status = PhGetClassObject(
2172+
L"taskschd.dll",
21722173
&CLSID_TaskScheduler,
2173-
NULL,
2174-
CLSCTX_INPROC_SERVER,
21752174
&IID_ITaskService,
21762175
&taskService
21772176
);
@@ -2240,10 +2239,9 @@ HRESULT PhDeleteAdminTask(
22402239
ITaskService* taskService = NULL;
22412240
ITaskFolder* taskFolder = NULL;
22422241

2243-
status = CoCreateInstance(
2242+
status = PhGetClassObject(
2243+
L"taskschd.dll",
22442244
&CLSID_TaskScheduler,
2245-
NULL,
2246-
CLSCTX_INPROC_SERVER,
22472245
&IID_ITaskService,
22482246
&taskService
22492247
);
@@ -2308,10 +2306,9 @@ HRESULT PhCreateAdminTask(
23082306
IAction* taskAction = NULL;
23092307
IExecAction* taskExecAction = NULL;
23102308

2311-
status = CoCreateInstance(
2309+
status = PhGetClassObject(
2310+
L"taskschd.dll",
23122311
&CLSID_TaskScheduler,
2313-
NULL,
2314-
CLSCTX_INPROC_SERVER,
23152312
&IID_ITaskService,
23162313
&taskService
23172314
);

ProcessHacker/chproc.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ INT_PTR CALLBACK PhpChooseProcessDlgProc(
4242
_In_ LPARAM lParam
4343
);
4444

45+
_Success_(return)
4546
BOOLEAN PhShowChooseProcessDialog(
4647
_In_ HWND ParentWindowHandle,
4748
_In_ PWSTR Message,

ProcessHacker/colmgr.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,9 @@ BOOLEAN PhCmForwardMessage(
172172
PH_TREENEW_COLUMN tnColumn;
173173
PPH_CM_COLUMN column;
174174

175+
if (!getCellText)
176+
return FALSE;
177+
175178
if (getCellText->Id < Manager->MinId)
176179
return FALSE;
177180

ProcessHacker/extmgr.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@ VOID PhEmCallObjectOperation(
193193
* \param AppName A variable which receives the application name.
194194
* \param SubId A variable which receives the sub-ID.
195195
*/
196+
_Success_(return)
196197
BOOLEAN PhEmParseCompoundId(
197198
_In_ PPH_STRINGREF CompoundId,
198199
_Out_ PPH_STRINGREF AppName,

ProcessHacker/findobj.c

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,11 +324,18 @@ BOOLEAN NTAPI PhpHandleObjectTreeNewCallback(
324324
PPH_HANDLE_SEARCH_CONTEXT context = Context;
325325
PPH_HANDLE_OBJECT_TREE_ROOT_NODE node;
326326

327+
if (!context)
328+
return FALSE;
329+
327330
switch (Message)
328331
{
329332
case TreeNewGetChildren:
330333
{
331334
PPH_TREENEW_GET_CHILDREN getChildren = Parameter1;
335+
336+
if (!getChildren)
337+
break;
338+
332339
node = (PPH_HANDLE_OBJECT_TREE_ROOT_NODE)getChildren->Node;
333340

334341
if (!getChildren->Node)
@@ -362,6 +369,10 @@ BOOLEAN NTAPI PhpHandleObjectTreeNewCallback(
362369
case TreeNewIsLeaf:
363370
{
364371
PPH_TREENEW_IS_LEAF isLeaf = (PPH_TREENEW_IS_LEAF)Parameter1;
372+
373+
if (!isLeaf)
374+
break;
375+
365376
node = (PPH_HANDLE_OBJECT_TREE_ROOT_NODE)isLeaf->Node;
366377

367378
isLeaf->IsLeaf = TRUE;
@@ -370,6 +381,10 @@ BOOLEAN NTAPI PhpHandleObjectTreeNewCallback(
370381
case TreeNewGetCellText:
371382
{
372383
PPH_TREENEW_GET_CELL_TEXT getCellText = (PPH_TREENEW_GET_CELL_TEXT)Parameter1;
384+
385+
if (!getCellText)
386+
break;
387+
373388
node = (PPH_HANDLE_OBJECT_TREE_ROOT_NODE)getCellText->Node;
374389

375390
switch (getCellText->Id)
@@ -402,6 +417,10 @@ BOOLEAN NTAPI PhpHandleObjectTreeNewCallback(
402417
case TreeNewGetNodeColor:
403418
{
404419
PPH_TREENEW_GET_NODE_COLOR getNodeColor = Parameter1;
420+
421+
if (!getNodeColor)
422+
break;
423+
405424
node = (PPH_HANDLE_OBJECT_TREE_ROOT_NODE)getNodeColor->Node;
406425

407426
getNodeColor->Flags = TN_CACHE | TN_AUTO_FORECOLOR;
@@ -418,6 +437,9 @@ BOOLEAN NTAPI PhpHandleObjectTreeNewCallback(
418437
{
419438
PPH_TREENEW_KEY_EVENT keyEvent = Parameter1;
420439

440+
if (!keyEvent)
441+
break;
442+
421443
switch (keyEvent->VirtualKey)
422444
{
423445
case 'C':

ProcessHacker/include/colsetmgr.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ VOID PhDeleteColumnSetList(
1616
_In_ PPH_LIST ColumnSetList
1717
);
1818

19+
_Success_(return)
1920
BOOLEAN PhLoadSettingsColumnSet(
2021
_In_ PWSTR SettingName,
2122
_In_ PPH_STRING ColumnSetName,

ProcessHacker/include/extmgri.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ VOID PhEmCallObjectOperation(
5252
_In_ PH_EM_OBJECT_OPERATION Operation
5353
);
5454

55+
_Success_(return)
5556
BOOLEAN PhEmParseCompoundId(
5657
_In_ PPH_STRINGREF CompoundId,
5758
_Out_ PPH_STRINGREF AppName,

ProcessHacker/include/phapp.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,7 @@ VOID PhShowProcessAffinityDialog(
300300
);
301301

302302
// begin_phapppub
303+
_Success_(return)
303304
PHAPPAPI
304305
BOOLEAN
305306
NTAPI
@@ -350,6 +351,7 @@ PhaChoiceDialog(
350351
// chproc
351352

352353
// begin_phapppub
354+
_Success_(return)
353355
PHAPPAPI
354356
BOOLEAN
355357
NTAPI

ProcessHacker/itemtips.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -610,10 +610,9 @@ VOID PhpFillRunningTasks(
610610

611611
ITaskService *taskService;
612612

613-
if (SUCCEEDED(CoCreateInstance(
614-
&CLSID_TaskScheduler_I,
615-
NULL,
616-
CLSCTX_INPROC_SERVER,
613+
if (SUCCEEDED(PhGetClassObject(
614+
L"taskschd.dll",
615+
&CLSID_TaskScheduler,
617616
&IID_ITaskService_I,
618617
&taskService
619618
)))

ProcessHacker/main.c

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,10 @@ VOID PhpEnablePrivileges(
7676
VOID
7777
);
7878

79+
BOOLEAN PhInitializeApplicationDirectory(
80+
VOID
81+
);
82+
7983
BOOLEAN PhInitializeExceptionPolicy(
8084
VOID
8185
);
@@ -113,6 +117,8 @@ INT WINAPI wWinMain(
113117

114118
if (!NT_SUCCESS(PhInitializePhLibEx(L"Process Hacker", ULONG_MAX, Instance, 0, 0)))
115119
return 1;
120+
if (!PhInitializeApplicationDirectory())
121+
return 1;
116122
if (!PhInitializeExceptionPolicy())
117123
return 1;
118124
if (!PhInitializeNamespacePolicy())
@@ -543,6 +549,32 @@ VOID PhInitializeFont(
543549
}
544550
}
545551

552+
BOOLEAN PhInitializeApplicationDirectory(
553+
VOID
554+
)
555+
{
556+
PPH_STRING applicationDirectory;
557+
UNICODE_STRING applicationDirectoryUs;
558+
559+
if (!(applicationDirectory = PhGetApplicationDirectory()))
560+
return FALSE;
561+
562+
if (!PhStringRefToUnicodeString(&applicationDirectory->sr, &applicationDirectoryUs))
563+
{
564+
PhDereferenceObject(applicationDirectory);
565+
return FALSE;
566+
}
567+
568+
if (!NT_SUCCESS(RtlSetCurrentDirectory_U(&applicationDirectoryUs)))
569+
{
570+
PhDereferenceObject(applicationDirectory);
571+
return FALSE;
572+
}
573+
574+
PhDereferenceObject(applicationDirectory);
575+
return TRUE;
576+
}
577+
546578
BOOLEAN PhInitializeRestartPolicy(
547579
VOID
548580
)

ProcessHacker/phsvc/clapi.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ NTSTATUS PhSvcConnectToServer(
8181
securityQos.EffectiveOnly = TRUE;
8282

8383
connectInfoLength = sizeof(PHSVC_API_CONNECTINFO);
84+
connectInfo.ServerProcessId = ULONG_MAX;
8485

8586
status = NtConnectPort(
8687
&PhSvcClPortHandle,

0 commit comments

Comments
 (0)