Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Ich möchte die Funktion NTQuerySystemInformation verwenden welche laut MSDN per Run-Time Dynamic Linking geladen werden muss da keine entsprechende Lib dafür existiert.

Gesagt getan


//typedef DWORD (*NTQUERYSYSTEMINFORMATION)(SYSTEM_INFORMATION_CLASS, void*, ULONG, ULONG*);
typedef DWORD (*NTQUERYSYSTEMINFORMATION)(DWORD, DWORD*, DWORD, void*);

NTQUERYSYSTEMINFORMATION NtQuerySystemInformation;

HMODULE hLib = LoadLibrary("Ntdll.dll");
NtQuerySystemInformation = (NTQUERYSYSTEMINFORMATION)GetProcAddress(hLib,"NtQuerySystemInformation");
[/PHP]

Leider bedkomme ich beim Aufrufen der Funktion später aber einen Fehler das das Value von ESP nicht richtig gespeichert wurde und das normalerweise geschähe wenn man eine Funktion mit einer bestimmten calling convention mit einer anderen aufruft.

Das typedef von NtQuerySystemInformation bzw. dessen Parameter hab ich so aus einem anderen Code den ich im Internet gefunden habe. Wenn ich die erste auskommentierte Variante bentutzte welche exakt die Parameter aus der MSDN verwendet kommt aber der selbe Fehler.

Hat jemand eine Idee dazu bzw. wie lege ich beim Run-Time Dynamic Linking die calling convention fest (geht das überhaupt?)?

Das hat mit Runtime Dynamic Linking erst mal nichts zu tun. Die Calling Convention ist Teil des Funktionszeigertyps:

typedef NTSTATUS (__stdcall *NTQUERYSYSTEMINFORMATION)(SYSTEM_INFORMATION_CLASS, PVOID, ULONG, PULONG); 

Vermutlich ist in deinem Project __stdcall nicht die Default-Calling-Convention.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.