Eventi
19 nov, 23 - 21 nov, 23
Ottenere il vantaggio competitivo necessario con potenti soluzioni di intelligenza artificiale e cloud partecipando a Microsoft Ignite online.
Iscriviti subitoQuesto browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
Aggiunge una tabella di funzioni dinamiche all'elenco di tabelle delle funzioni dinamiche.
NTSYSAPI BOOLEAN RtlInstallFunctionTableCallback(
[in] DWORD64 TableIdentifier,
[in] DWORD64 BaseAddress,
[in] DWORD Length,
[in] PGET_RUNTIME_FUNCTION_CALLBACK Callback,
[in] PVOID Context,
[in] PCWSTR OutOfProcessCallbackDll
);
[in] TableIdentifier
Identificatore del callback della tabella di funzioni dinamiche. I due bit di ordine basso devono essere impostati. Ad esempio, BaseAddress|0x3.
[in] BaseAddress
Indirizzo di base dell'area di memoria gestita dalla funzione di callback.
[in] Length
Dimensioni dell'area di memoria gestita dalla funzione di callback, in byte.
[in] Callback
Puntatore alla funzione di callback chiamata per recuperare le voci della tabella delle funzioni per le funzioni nell'area di memoria specificata. Per una definizione del tipo di PGET_RUNTIME_FUNCTION_CALLBACK , vedere WinNT.h.
[in] Context
Puntatore ai dati definiti dall'utente da passare alla funzione di callback.
[in] OutOfProcessCallbackDll
Puntatore facoltativo a una stringa che specifica il percorso di una DLL che fornisce voci di tabella delle funzioni esterne al processo.
Quando un debugger si rimuove a una funzione nell'intervallo di indirizzi gestiti dalla funzione di callback, carica questa DLL e chiama la funzione OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK_EXPORT_NAME , il cui tipo è POUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK. Per altre informazioni, vedere le definizioni di questi elementi in WinNT.h.
Se la funzione ha esito positivo, il valore restituito è TRUE. Se la funzione ha esito negativo, il valore restituito è FALSE.
Le tabelle delle funzioni vengono usate in Windows a 64 bit per determinare come rimuovere o camminare lo stack. Queste tabelle vengono in genere generate dal compilatore e archiviate come parte dell'immagine. Tuttavia, le applicazioni devono fornire la tabella delle funzioni per il codice generato in modo dinamico. Per altre informazioni sulle tabelle delle funzioni, vedere la guida all'architettura per il sistema.
Questa funzione è utile per il codice molto dinamico. L'applicazione specifica l'intervallo di memoria per il codice generato, ma non deve generare una tabella finché non è necessaria da una richiesta di rimozione. In quel momento, il sistema chiama la funzione di callback con context e l'indirizzo del controllo. La funzione di callback deve restituire la voce della funzione di runtime per l'indirizzo specificato. Assicurarsi di evitare di creare un deadlock tra la funzione di callback e il generatore di codice.
Per il codice generato da un modello o generato una sola volta durante la durata del processo, usare la funzione RtlAddFunctionTable .
Requisito | Valore |
---|---|
Piattaforma di destinazione | Windows |
Intestazione | winnt.h (include Windows.h) |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |
Eventi
19 nov, 23 - 21 nov, 23
Ottenere il vantaggio competitivo necessario con potenti soluzioni di intelligenza artificiale e cloud partecipando a Microsoft Ignite online.
Iscriviti subito