Search code examples
c++calldllimportdllexport

How to call winapi function via pointer to this function?


I get functions from ntdll.dll dynamically, using GetProcAddress winapi function like this:

HMODULE ntdllh = LoadLibrary(L"ntdll.dll");
unsigned char* ptrToNtLoadDriver 
                        = (unsigned char*)GetProcAddress(ntdllh, "NtLoadDriver");

How can I call NtLoadDriver function via ptrToNtLoadDriver ? I thought of something like this: ((NTSTATUS NtLoadDriver(PUNICODE_STRING driverServiceName))ptrToNtLoadDriver)(fooString)


Solution

    1. do typedef "X" for function type you want to call (example: "typedef returntype (*X)(argtype);")
    2. change "unsigned char* ptrToNtLoadDriver" to "X ptrToNtLoadDriver"
    3. call function as "ptrToNtLoadDriver(argsHere)"