Interface IGameInteropProvider
Service responsible for the creation of hooks.
Assembly: Dalamud.dll
View Source
public interface IGameInteropProvider
Methods
InitializeFromAttributes(object)
Initialize Dalamud.Hooking.Hook%601
members decorated with the Dalamud.Utility.Signatures.SignatureAttribute.
Initialize any delegate members decorated with the Dalamud.Utility.Signatures.SignatureAttribute.
Fill out any IntPtr members decorated with the Dalamud.Utility.Signatures.SignatureAttribute with the resolved address.
Errors for fallible signatures will be logged.
View Source
void InitializeFromAttributes(object self)
Parameters
Type | Name | Description |
---|---|---|
System.Object | self | The object to initialize. |
HookFromFunctionPointerVariable<T>(nint, T)
Creates a hook by replacing the original address with an address pointing to a newly created jump to the detour.
View Source
Hook<T> HookFromFunctionPointerVariable<T>(nint address, T detour) where T : Delegate
Returns
Dalamud.Hooking.Hook<T>: The hook with the supplied parameters.
Parameters
Type | Name | Description |
---|---|---|
System.IntPtr | address | A memory address to install a hook. |
<T> | detour | Callback function. Delegate must have a same original function prototype. |
Type Parameters
Name | Description |
---|---|
T | Delegate of detour. |
HookFromImport<T>(ProcessModule?, string, string, uint, T)
Creates a hook by rewriting import table address.
View Source
Hook<T> HookFromImport<T>(ProcessModule? module, string moduleName, string functionName, uint hintOrOrdinal, T detour) where T : Delegate
Returns
Dalamud.Hooking.Hook<T>: The hook with the supplied parameters.
Parameters
Type | Name | Description |
---|---|---|
System.Diagnostics.ProcessModule | module | Module to check for. Current process' main module if null. |
System.String | moduleName | Name of the DLL, including the extension. |
System.String | functionName | Decorated name of the function. |
System.UInt32 | hintOrOrdinal | Hint or ordinal. 0 to unspecify. |
<T> | detour | Callback function. Delegate must have a same original function prototype. |
Type Parameters
Name | Description |
---|---|
T | Delegate of detour. |
HookFromSymbol<T>(string, string, T, HookBackend)
Creates a hook. Hooking address is inferred by calling to GetProcAddress() function. The hook is not activated until Enable() method is called. Please do not use MinHook unless you have thoroughly troubleshot why Reloaded does not work.
View Source
Hook<T> HookFromSymbol<T>(string moduleName, string exportName, T detour, IGameInteropProvider.HookBackend backend = HookBackend.Automatic) where T : Delegate
Returns
Dalamud.Hooking.Hook<T>: The hook with the supplied parameters.
Parameters
Type | Name | Description |
---|---|---|
System.String | moduleName | A name of the module currently loaded in the memory. (e.g. ws2_32.dll). |
System.String | exportName | A name of the exported function name (e.g. send). |
<T> | detour | Callback function. Delegate must have a same original function prototype. |
Dalamud.Plugin.Services.IGameInteropProvider.HookBackend | backend | Hooking library to use. |
Type Parameters
Name | Description |
---|---|
T | Delegate of detour. |
HookFromAddress<T>(nint, T, HookBackend)
Creates a hook. Hooking address is inferred by calling to GetProcAddress() function. The hook is not activated until Enable() method is called. Please do not use MinHook unless you have thoroughly troubleshot why Reloaded does not work.
View Source
Hook<T> HookFromAddress<T>(nint procAddress, T detour, IGameInteropProvider.HookBackend backend = HookBackend.Automatic) where T : Delegate
Returns
Dalamud.Hooking.Hook<T>: The hook with the supplied parameters.
Parameters
Type | Name | Description |
---|---|---|
System.IntPtr | procAddress | A memory address to install a hook. |
<T> | detour | Callback function. Delegate must have a same original function prototype. |
Dalamud.Plugin.Services.IGameInteropProvider.HookBackend | backend | Hooking library to use. |
Type Parameters
Name | Description |
---|---|
T | Delegate of detour. |
HookFromAddress<T>(nuint, T, HookBackend)
Creates a hook. Hooking address is inferred by calling to GetProcAddress() function. The hook is not activated until Enable() method is called. Please do not use MinHook unless you have thoroughly troubleshot why Reloaded does not work.
View Source
Hook<T> HookFromAddress<T>(nuint procAddress, T detour, IGameInteropProvider.HookBackend backend = HookBackend.Automatic) where T : Delegate
Returns
Dalamud.Hooking.Hook<T>: The hook with the supplied parameters.
Parameters
Type | Name | Description |
---|---|---|
System.UIntPtr | procAddress | A memory address to install a hook. |
<T> | detour | Callback function. Delegate must have a same original function prototype. |
Dalamud.Plugin.Services.IGameInteropProvider.HookBackend | backend | Hooking library to use. |
Type Parameters
Name | Description |
---|---|
T | Delegate of detour. |
HookFromAddress<T>(void*, T, HookBackend)
Creates a hook. Hooking address is inferred by calling to GetProcAddress() function. The hook is not activated until Enable() method is called. Please do not use MinHook unless you have thoroughly troubleshot why Reloaded does not work.
View Source
Hook<T> HookFromAddress<T>(void* procAddress, T detour, IGameInteropProvider.HookBackend backend = HookBackend.Automatic) where T : Delegate
Returns
Dalamud.Hooking.Hook<T>: The hook with the supplied parameters.
Parameters
Type | Name | Description |
---|---|---|
System.Void* | procAddress | A memory address to install a hook. |
<T> | detour | Callback function. Delegate must have a same original function prototype. |
Dalamud.Plugin.Services.IGameInteropProvider.HookBackend | backend | Hooking library to use. |
Type Parameters
Name | Description |
---|---|
T | Delegate of detour. |
HookFromSignature<T>(string, T, HookBackend)
Creates a hook from a signature into the Dalamud target module.
View Source
Hook<T> HookFromSignature<T>(string signature, T detour, IGameInteropProvider.HookBackend backend = HookBackend.Automatic) where T : Delegate
Returns
Dalamud.Hooking.Hook<T>: The hook with the supplied parameters.
Parameters
Type | Name | Description |
---|---|---|
System.String | signature | Signature of function to hook. |
<T> | detour | Callback function. Delegate must have a same original function prototype. |
Dalamud.Plugin.Services.IGameInteropProvider.HookBackend | backend | Hooking library to use. |
Type Parameters
Name | Description |
---|---|
T | Delegate of detour. |