InitializeContext-Funktion (winbase.h)

Initialisiert eine Struktur CONTEXT innerhalb eines Puffers mit der erforderlichen Größe und Ausrichtung.

Syntax

BOOL InitializeContext(
  [out, optional] PVOID    Buffer,
  [in]            DWORD    ContextFlags,
  [out, optional] PCONTEXT *Context,
  [in, out]       PDWORD   ContextLength
);

Parameter

[out, optional] Buffer

Ein Zeiger auf einen Puffer, in dem eine CONTEXT-Struktur initialisiert werden soll. Dieser Parameter kann NULL sein, um die Puffergröße zu bestimmen, die erforderlich ist, um einen Kontextdatensatz mit den angegebenen ContextFlags zu enthalten.

[in] ContextFlags

Ein Wert, der angibt, welche Teile der Kontextstruktur initialisiert werden sollen. Dieser Parameter beeinflusst die Größe der initialisierten Kontextstruktur .

Beachten SieCONTEXT_XSTATE nicht Teil von CONTEXT_FULL oder CONTEXT_ALL ist. Sie muss separat angegeben werden, wenn ein XState-Kontext gewünscht ist.
 

[out, optional] Context

Ein Zeiger auf eine Variable, die die Adresse der initialisierten CONTEXT-Struktur im Puffer empfängt.

Hinweis Aufgrund der Ausrichtungsanforderungen von CONTEXT-Strukturen befindet sich der in Context zurückgegebene Wert möglicherweise nicht am Anfang des bereitgestellten Puffers.
 

[in, out] ContextLength

Gibt bei der Eingabe die Länge des Puffers an, auf den puffer in Bytes verweist. Wenn der Puffer nicht groß genug ist, um die angegebenen Teile von CONTEXT zu enthalten, schlägt die Funktion fehl, GetLastError gibt ERROR_INSUFFICIENT_BUFFER zurück, und ContextLength ist auf die erforderliche Größe des Puffers festgelegt. Wenn die Funktion mit einem anderen Fehler als ERROR_INSUFFICIENT_BUFFER fehlschlägt, ist der Inhalt von ContextLength nicht definiert.

Rückgabewert

Diese Funktion gibt bei erfolgreicher Ausführung TRUE zurück, andernfalls FALSE. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

InitializeContext kann verwendet werden, um eine CONTEXT-Struktur in einem Puffer mit den erforderlichen Größen- und Ausrichtungsmerkmalen zu initialisieren. Diese Routine ist erforderlich, wenn der CONTEXT_XSTATEContextFlag angegeben wird, da sich die erforderliche Kontextgröße und Ausrichtung je nachdem ändern kann, welche Prozessorfeatures auf dem System aktiviert sind.

Rufen Sie zunächst diese Funktion auf, wobei der ContextFlags-Parameter auf die maximale Anzahl von Features festgelegt ist, die Sie verwenden werden, und dem Buffer-Parameter auf NULL. Die Funktion gibt die erforderliche Puffergröße in Bytes im Parameter ContextLength zurück. Weisen Sie genügend Speicherplatz für die Daten im Puffer zu , und rufen Sie die Funktion erneut auf, um den Kontext zu initialisieren. Nach erfolgreichem Abschluss dieser Routine wird das ContextFlags-Element der Kontextstruktur initialisiert, aber der verbleibende Inhalt der Struktur ist nicht definiert. Einige bits, die im ContextFlags-Parameter angegeben sind, werden möglicherweise nicht in Context-ContextFlags> festgelegt, wenn sie vom System nicht unterstützt werden. Anwendungen können anschließend Bits aus dem ContextFlags-Member von CONTEXT entfernen, dürfen sie jedoch nie hinzufügen.

Windows 7 mit SP1 und Windows Server 2008 R2 mit SP1: Die AVX-API wird zuerst unter Windows 7 mit SP1 und Windows Server 2008 R2 mit SP1 implementiert. Da es kein SDK für SP1 gibt, bedeutet dies, dass keine Header und Bibliotheksdateien verfügbar sind, mit denen Sie arbeiten können. In dieser Situation muss ein Aufrufer die erforderlichen Funktionen aus dieser Dokumentation deklarieren und Zeiger darauf mithilfe von GetModuleHandle auf „Kernel32.dll“ gefolgt von Aufrufen von GetProcAddress abrufen. Weitere Informationen finden Sie unter Arbeiten mit dem XState-Kontext .

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7 mit SP1 [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 mit SP1 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile winbase.h (einschließlich Windows.h)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

CONTEXT

CopyContext

Intel AVX

Arbeiten mit XState-Kontext