LdrGetProcedureAddressForCaller - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
#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
    );

#endif
#endif
#endif

View code on GitHub

NtDoc

No description available.