File tree 2 files changed +24
-0
lines changed
2 files changed +24
-0
lines changed Original file line number Diff line number Diff line change @@ -387,6 +387,29 @@ namespace Detours {
387
387
// UnLinkModule
388
388
// ----------------------------------------------------------------
389
389
390
+ bool UnLinkModule(PLDR_DATA_TABLE_ENTRY pDTE, PLINK_DATA pLinkData) {
391
+ if (!pDTE || !pLinkData) {
392
+ return false;
393
+ }
394
+
395
+ memset(pLinkData, 0, sizeof(LINK_DATA));
396
+
397
+ pLinkData->m_pDTE = pDTE;
398
+ pLinkData->m_pSavedInLoadOrderLinks = pDTE->InLoadOrderLinks.Blink->Flink;
399
+ pLinkData->m_pSavedInInitializationOrderLinks = pDTE->InInitializationOrderLinks.Blink->Flink;
400
+ pLinkData->m_pSavedInMemoryOrderLinks = pDTE->InMemoryOrderLinks.Blink->Flink;
401
+ pLinkData->m_pSavedHashLinks = pDTE->HashLinks.Blink->Flink;
402
+ pLinkData->m_pSavedNodeModuleLink = pDTE->NodeModuleLink.Blink->Flink;
403
+
404
+ UnLinkEntry(&pDTE->InLoadOrderLinks);
405
+ UnLinkEntry(&pDTE->InInitializationOrderLinks);
406
+ UnLinkEntry(&pDTE->InMemoryOrderLinks);
407
+ UnLinkEntry(&pDTE->HashLinks);
408
+ UnLinkEntry(&pDTE->NodeModuleLink);
409
+
410
+ return true;
411
+ }
412
+
390
413
bool UnLinkModule(void* pBaseAddress, PLINK_DATA pLinkData) {
391
414
if (!pBaseAddress || !pLinkData) {
392
415
return false;
Original file line number Diff line number Diff line change @@ -1437,6 +1437,7 @@ namespace Detours {
1437
1437
// UnLinkModule
1438
1438
// ----------------------------------------------------------------
1439
1439
1440
+ bool UnLinkModule (PLDR_DATA_TABLE_ENTRY pDTE, PLINK_DATA pLinkData);
1440
1441
bool UnLinkModule (void * pBaseAddress, PLINK_DATA pLinkData);
1441
1442
bool UnLinkModule (HMODULE hModule, PLINK_DATA pLinkData);
1442
1443
bool UnLinkModuleA (const char * szModuleName, PLINK_DATA pLinkData);
You can’t perform that action at this time.
0 commit comments