3
3
* server API
4
4
*
5
5
* Copyright (C) 2011-2015 wj32
6
- * Copyright (C) 2019-2021 dmex
6
+ * Copyright (C) 2019-2022 dmex
7
7
*
8
8
* This file is part of Process Hacker.
9
9
*
32
32
33
33
#include <accctrl.h>
34
34
#include <dbghelp.h>
35
- #include <processsnapshot.h>
36
35
#include <symprv.h>
37
36
38
37
typedef struct _PHSVCP_CAPTURED_RUNAS_SERVICE_PARAMETERS
@@ -1430,31 +1429,18 @@ NTSTATUS PhSvcApiWriteMiniDumpProcess(
1430
1429
MINIDUMP_CALLBACK_INFORMATION callbackInfo = { 0 };
1431
1430
HANDLE processHandle = UlongToHandle (Payload -> u .WriteMiniDumpProcess .i .LocalProcessHandle );
1432
1431
ULONG processDumpType = Payload -> u .WriteMiniDumpProcess .i .DumpType ;
1433
- HPSS snapshotHandle = NULL ;
1432
+ HANDLE snapshotHandle = NULL ;
1434
1433
1435
- if (PssCaptureSnapshot_Import ( ))
1434
+ if (NT_SUCCESS ( PhCreateProcessSnapshot ( & snapshotHandle , processHandle , NULL ) ))
1436
1435
{
1437
- PssCaptureSnapshot_Import ()(
1438
- processHandle ,
1439
- PSS_CAPTURE_VA_CLONE | PSS_CAPTURE_VA_SPACE | PSS_CAPTURE_VA_SPACE_SECTION_INFORMATION |
1440
- PSS_CAPTURE_IPT_TRACE | PSS_CAPTURE_HANDLE_TRACE | PSS_CAPTURE_HANDLES | PSS_CAPTURE_HANDLE_BASIC_INFORMATION |
1441
- PSS_CAPTURE_HANDLE_TYPE_SPECIFIC_INFORMATION | PSS_CAPTURE_HANDLE_NAME_INFORMATION |
1442
- PSS_CAPTURE_THREADS | PSS_CAPTURE_THREAD_CONTEXT | PSS_CREATE_USE_VM_ALLOCATIONS ,
1443
- CONTEXT_ALL ,
1444
- & snapshotHandle
1445
- );
1446
-
1447
- if (snapshotHandle )
1448
- {
1449
- processDumpType =
1450
- MiniDumpWithFullMemory |
1451
- MiniDumpWithHandleData |
1452
- MiniDumpWithUnloadedModules |
1453
- MiniDumpWithFullMemoryInfo |
1454
- MiniDumpWithThreadInfo |
1455
- MiniDumpIgnoreInaccessibleMemory |
1456
- MiniDumpWithIptTrace ;
1457
- }
1436
+ processDumpType =
1437
+ MiniDumpWithFullMemory |
1438
+ MiniDumpWithHandleData |
1439
+ MiniDumpWithUnloadedModules |
1440
+ MiniDumpWithFullMemoryInfo |
1441
+ MiniDumpWithThreadInfo |
1442
+ MiniDumpIgnoreInaccessibleMemory |
1443
+ MiniDumpWithIptTrace ;
1458
1444
}
1459
1445
1460
1446
callbackInfo .CallbackRoutine = PhpProcessMiniDumpCallback ;
@@ -1472,22 +1458,7 @@ NTSTATUS PhSvcApiWriteMiniDumpProcess(
1472
1458
{
1473
1459
if (snapshotHandle )
1474
1460
{
1475
- PSS_VA_CLONE_INFORMATION processInfo ;
1476
-
1477
- if (PssQuerySnapshot_Import () && PssQuerySnapshot_Import ()(
1478
- snapshotHandle ,
1479
- PSS_QUERY_VA_CLONE_INFORMATION ,
1480
- & processInfo ,
1481
- sizeof (PSS_VA_CLONE_INFORMATION )
1482
- ) == ERROR_SUCCESS )
1483
- {
1484
- NtClose (processInfo .VaCloneHandle );
1485
- }
1486
-
1487
- if (PssFreeSnapshot_Import ())
1488
- {
1489
- PssFreeSnapshot_Import ()(processHandle , snapshotHandle );
1490
- }
1461
+ PhFreeProcessSnapshot (snapshotHandle , processHandle );
1491
1462
}
1492
1463
1493
1464
return STATUS_SUCCESS ;
@@ -1498,22 +1469,7 @@ NTSTATUS PhSvcApiWriteMiniDumpProcess(
1498
1469
1499
1470
if (snapshotHandle )
1500
1471
{
1501
- PSS_VA_CLONE_INFORMATION processInfo ;
1502
-
1503
- if (PssQuerySnapshot_Import () && PssQuerySnapshot_Import ()(
1504
- snapshotHandle ,
1505
- PSS_QUERY_VA_CLONE_INFORMATION ,
1506
- & processInfo ,
1507
- sizeof (PSS_VA_CLONE_INFORMATION )
1508
- ) == ERROR_SUCCESS )
1509
- {
1510
- NtClose (processInfo .VaCloneHandle );
1511
- }
1512
-
1513
- if (PssFreeSnapshot_Import ())
1514
- {
1515
- PssFreeSnapshot_Import ()(processHandle , snapshotHandle );
1516
- }
1472
+ PhFreeProcessSnapshot (snapshotHandle , processHandle );
1517
1473
}
1518
1474
1519
1475
if (error == HRESULT_FROM_WIN32 (ERROR_INVALID_PARAMETER ))
0 commit comments