#ifndef _NTLDR_H
#if (PHNT_MODE != PHNT_MODE_KERNEL)
#if (PHNT_VERSION >= PHNT_WINDOWS_8)
// rev
/**
* The LdrGetProcedureAddressForCaller routine retrieves the address of an exported function or variable from the specified DLL.
*
* \param DllHandle A handle to the DLL module.
* \param ProcedureName An optional pointer to an ANSI_STRING structure containing the name of the function.
* \param ProcedureNumber An optional ordinal of the function.
* \param ProcedureAddress A pointer that receives the address of the exported function or variable.
* \param Flags Flags to modify the behavior of the function.
* \param CallerAddress The address of the caller.
* \return NTSTATUS Successful or errant status.
* \remarks Resolves an export with explicit caller identity for loader policy. Do not interpret the result
* as an owning module reference; retain the relevant image lifetime while using it. Error returns must be
* checked before consuming ProcedureAddress.
*/
NTSYSAPI
NTSTATUS
NTAPI
LdrGetProcedureAddressForCaller(
_In_ PVOID DllHandle,
_In_opt_ PCANSI_STRING ProcedureName,
_In_opt_ ULONG ProcedureNumber,
_Out_ PVOID *ProcedureAddress,
_In_ ULONG Flags, // LDR_GET_PROCEDURE_ADDRESS_*
_In_ PVOID CallerAddress
);
View code on GitHubNo description available.