Bagikan melalui


Fungsi InitializeContext (winbase.h)

Menginisialisasi struktur KONTEKS di dalam buffer dengan ukuran dan perataan yang diperlukan.

Sintaksis

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

Parameter

[out, optional] Buffer

Penunjuk ke buffer untuk menginisialisasi struktur KONTEKS . Parameter ini dapat NULL untuk menentukan ukuran buffer yang diperlukan untuk menyimpan rekaman konteks dengan ContextFlags yang ditentukan.

[in] ContextFlags

Nilai yang menunjukkan bagian mana dari struktur Konteks yang harus diinisialisasi. Parameter ini memengaruhi ukuran struktur Konteks yang diinisialisasi.

CatatanCONTEXT_XSTATE bukan bagian dari CONTEXT_FULL atau CONTEXT_ALL. Ini harus ditentukan secara terpisah jika konteks XState diinginkan.
 

[out, optional] Context

Penunjuk ke variabel yang menerima alamat struktur KONTEKS yang diinisialisasi dalam Buffer.

Catatan Karena persyaratan penyelarasan struktur KONTEKS , nilai yang dikembalikan dalam Konteks mungkin tidak berada di awal buffer yang disediakan.
 

[in, out] ContextLength

Pada input, menentukan panjang buffer yang diacu oleh Buffer, dalam byte. Jika buffer tidak cukup besar untuk berisi bagian yang ditentukan dariKONTEKS , fungsi gagal, GetLastError mengembalikan ERROR_INSUFFICIENT_BUFFER, dan ContextLength diatur ke ukuran buffer yang diperlukan. Jika fungsi gagal dengan kesalahan selain ERROR_INSUFFICIENT_BUFFER, konten ContextLength tidak terdefinisi.

Mengembalikan nilai

Fungsi ini mengembalikan TRUE jika berhasil, jika tidak, FALSE. Untuk mendapatkan informasi kesalahan yang diperluas, panggil GetLastError.

Komentar

InitializeContext dapat digunakan untuk menginisialisasi struktur KONTEKS dalam buffer dengan ukuran dan karakteristik perataan yang diperlukan. Rutinitas ini diperlukan jika CONTEXT_XSTATEContextFlag ditentukan karena ukuran konteks dan penyelarasan yang diperlukan dapat berubah tergantung pada fitur prosesor mana yang diaktifkan pada sistem.

Pertama, panggil fungsi ini dengan parameter ContextFlags diatur ke jumlah maksimum fitur yang akan Anda gunakan dan parameter Buffer untuk null. Fungsi mengembalikan ukuran buffer yang diperlukan dalam byte dalam parameter ContextLength. Alokasikan ruang yang cukup untuk data di buffer dan panggil fungsi lagi untuk menginisialisasiKonteks . Setelah berhasil menyelesaikan rutinitas ini, ContextFlags anggota struktur Konteks diinisialisasi, tetapi konten struktur yang tersisa tidak terdefinisi. Beberapa bit yang ditentukan dalam parameter ContextFlags mungkin tidak diatur dalamKonteks -ContextFlags jika tidak didukung oleh sistem. Aplikasi selanjutnya dapat dihapus, tetapi tidak boleh menambahkan, bit dari ContextFlags anggota CONTEXT.

Windows 7 dengan SP1 dan Windows Server 2008 R2 dengan SP1: API AVX pertama kali diimplementasikan pada Windows 7 dengan SP1 dan Windows Server 2008 R2 dengan SP1 . Karena tidak ada SDK untuk SP1, itu berarti tidak ada header dan file pustaka yang tersedia untuk dikerjakan. Dalam situasi ini, penelepon harus mendeklarasikan fungsi yang diperlukan dari dokumentasi ini dan mendapatkan pointer kepada mereka menggunakan GetModuleHandle pada "Kernel32.dll", diikuti dengan panggilan ke GetProcAddress. Lihat Bekerja dengan Konteks XState untuk detailnya.

Persyaratan

Syarat Nilai
klien minimum yang didukung Windows 7 dengan SP1 [aplikasi desktop | Aplikasi UWP]
server minimum yang didukung Windows Server 2008 R2 dengan SP1 [aplikasi desktop | Aplikasi UWP]
Platform Target Windows
Header winbase.h (termasuk Windows.h)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

KONTEKS

CopyContext

Intel AVX

Bekerja dengan Konteks XState