@@ -138,6 +138,10 @@ static NTSTATUS NTAPI RtlFindLdrpReleaseTlsEntry() {
138138BOOL NTAPI MmpTlsInitialize () {
139139 if (!NT_SUCCESS (RtlFindLdrpHandleTlsData ()) ||
140140 !NT_SUCCESS (RtlFindLdrpReleaseTlsEntry ())) {
141+
142+ LdrpHandleTlsData = nullptr ;
143+ LdrpReleaseTlsEntry = nullptr ;
144+
141145 MmpGlobalDataPtr->MmpFeatures &= ~MEMORY_FEATURE_LDRP_HANDLE_TLS_DATA;
142146 return FALSE ;
143147 }
@@ -147,8 +151,8 @@ BOOL NTAPI MmpTlsInitialize() {
147151}
148152
149153NTSTATUS NTAPI MmpReleaseTlsEntry (_In_ PLDR_DATA_TABLE_ENTRY lpModuleEntry) {
150- typedef NTSTATUS (__stdcall* STDCALL)(PLDR_DATA_TABLE_ENTRY);
151- typedef NTSTATUS (__stdcall * THISCALL)(PLDR_DATA_TABLE_ENTRY);
154+ typedef NTSTATUS (__stdcall* STDCALL)(PLDR_DATA_TABLE_ENTRY, PVOID* );
155+ typedef NTSTATUS (__thiscall * THISCALL)(PLDR_DATA_TABLE_ENTRY, PVOID* );
152156
153157 union {
154158 STDCALL stdcall;
@@ -159,7 +163,7 @@ NTSTATUS NTAPI MmpReleaseTlsEntry(_In_ PLDR_DATA_TABLE_ENTRY lpModuleEntry) {
159163 fp.ptr = LdrpReleaseTlsEntry;
160164
161165 if (fp.ptr ) {
162- return stdcall ? fp.stdcall (lpModuleEntry) : fp.thiscall (lpModuleEntry);
166+ return stdcall ? fp.stdcall (lpModuleEntry, nullptr ) : fp.thiscall (lpModuleEntry, nullptr );
163167 }
164168 else {
165169 return STATUS_NOT_SUPPORTED;
@@ -168,7 +172,7 @@ NTSTATUS NTAPI MmpReleaseTlsEntry(_In_ PLDR_DATA_TABLE_ENTRY lpModuleEntry) {
168172
169173NTSTATUS NTAPI MmpHandleTlsData (_In_ PLDR_DATA_TABLE_ENTRY lpModuleEntry) {
170174 typedef NTSTATUS (__stdcall* STDCALL)(PLDR_DATA_TABLE_ENTRY);
171- typedef NTSTATUS (__stdcall * THISCALL)(PLDR_DATA_TABLE_ENTRY);
175+ typedef NTSTATUS (__thiscall * THISCALL)(PLDR_DATA_TABLE_ENTRY);
172176
173177 union {
174178 STDCALL stdcall;
0 commit comments