struttura ACTCTX_SECTION_KEYED_DATA (winbase.h)
La struttura ACTCTX_SECTION_KEYED_DATA viene usata dalle funzioni FindActCtxSectionString e FindActCtxSectionGuid per restituire le informazioni sul contesto di attivazione insieme alla sezione relativa al contesto di attivazione con tag integer a 32 bit o GUID.
Sintassi
typedef struct tagACTCTX_SECTION_KEYED_DATA {
ULONG cbSize;
ULONG ulDataFormatVersion;
PVOID lpData;
ULONG ulLength;
PVOID lpSectionGlobalData;
ULONG ulSectionGlobalDataLength;
PVOID lpSectionBase;
ULONG ulSectionTotalLength;
HANDLE hActCtx;
ULONG ulAssemblyRosterIndex;
ULONG ulFlags;
ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA AssemblyMetadata;
} ACTCTX_SECTION_KEYED_DATA, *PACTCTX_SECTION_KEYED_DATA;
Members
cbSize
Dimensione, in byte, della struttura dei dati con chiave del contesto di attivazione.
ulDataFormatVersion
Numero che indica il formato dei dati nella sezione in cui è stata trovata la chiave. I client devono verificare che la versione del formato dati sia come previsto anziché tentare di interpretare i valori dei formati di dati non noti. Questo numero viene modificato solo quando è necessario apportare modifiche importanti non compatibili con le versioni precedenti ai formati di dati della sezione. La versione del formato corrente è 1.
lpData
Puntatore ai dati di reindirizzamento trovati associati all'identificatore e alla chiave della sezione.
ulLength
Numero di byte nella struttura a cui fa riferimento lpData. Si noti che le strutture di dati aumentano nel tempo; non accedere ai membri nei dati dell'istanza che si estendono oltre ulLength.
lpSectionGlobalData
Puntatore restituito a una struttura di dati specifica della sezione che è globale per la sezione del contesto di attivazione in cui è stata trovata la chiave. L'interpretazione dipende dall'identificatore di sezione richiesto.
ulSectionGlobalDataLength
Numero di byte nel blocco di dati globale della sezione a cui fa riferimento lpSectionGlobalData.
Si noti che le strutture di dati aumentano nel tempo e si potrebbe ricevere un blocco di dati del contesto di attivazione del formato precedente; non accedere ai membri nella sezione dati globali che si estendono oltre ulSectionGlobalDataLength.
lpSectionBase
Puntatore alla base della sezione in cui è stata trovata la chiave. Alcuni dati dell'istanza contengono offset relativi all'indirizzo di base della sezione, nel qual caso viene usato questo valore del puntatore.
ulSectionTotalLength
Numero di byte per l'intera sezione a partire da lpSectionBase. Può essere utilizzato per verificare che le coppie offset/lunghezza, specificate come relative alla base di sezione, siano completamente contenute nella sezione.
hActCtx
Gestire il contesto di attivazione in cui è stata trovata la chiave. Innanzitutto, viene eseguita la ricerca del contesto di attivazione attiva per il thread, seguito dal contesto di attivazione predefinito del processo e quindi dal contesto di attivazione predefinito compatibile con il sistema. Questo membro indica il contesto di attivazione contenuto nella sezione e nella chiave richiesta. Viene restituito solo se viene passato il flag FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX.
Si noti che quando viene restituito, il chiamante deve chiamare ReleaseActCtx() nell'handle del contesto di attivazione restituito per rilasciare le risorse di sistema quando tutti gli altri riferimenti al contesto di attivazione sono stati rilasciati.
ulAssemblyRosterIndex
Numero cardinale dell'assembly nel contesto di attivazione che ha fornito le informazioni di reindirizzamento trovate. Questo valore può essere presentato a QueryActCtxW per altre informazioni sull'assembly che contribuisce.
ulFlags
AssemblyMetadata
Commenti
I chiamanti devono inizializzare la struttura ACTCTX_SECTION_KEYED_DATA , ad esempio:
"ACTCTX_SECTION_KEYED_DATA askd = { sizeof(askd) };"
che inizializza tutti i membri su zero/null, ad eccezione del campo size impostato correttamente.
Requisiti
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Intestazione | winbase.h (include Windows.h) |