struktur PEP_QUERY_SOC_SUBSYSTEM (pep_x.h)

Struktur PEP_QUERY_SOC_SUBSYSTEM digunakan oleh pemberitahuan PEP_DPM_QUERY_SOC_SUBSYSTEM untuk mengumpulkan informasi dasar tentang sistem tertentu pada subsistem chip (SoC).

Sintaks

typedef struct _PEP_QUERY_SOC_SUBSYSTEM {
  [in]     ULONG          PlatformIdleStateIndex;
  [in]     ULONG          SubsystemIndex;
  [out]    PVOID          SubsystemHandle;
  [in/out] UNICODE_STRING ParentName;
  [in/out] UNICODE_STRING SubsystemName;
  [out]    ULONG          MetadataCount;
           ULONG          Flags;
} PEP_QUERY_SOC_SUBSYSTEM, *PPEP_QUERY_SOC_SUBSYSTEM;

Anggota

[in] PlatformIdleStateIndex

Indeks status diam platform yang sedang dikueri oleh kernel.

[in] SubsystemIndex

Indeks subsistem, yang merupakan indeks unik yang ditetapkan oleh OS untuk setiap subsistem dalam konteks PlatformIdleStateIndex tertentu.

Kernel menginisialisasi nilai ini ke nol dan menambahnya untuk setiap pemberitahuan info statis subsistem berikutnya. Nilai 0 berarti ini adalah pemberitahuan pertama untuk PlatformIdleStateIndex yang diberikan. Bidang ini dimaksudkan untuk memberikan konteks PEP antara instans pemberitahuan ini. Ini adalah satu-satunya bidang yang nilai inputnya bervariasi di seluruh instans pemberitahuan ini untuk PlatformIdleStateIndex tertentu dan PEP mungkin menggunakan nilai ini untuk mencari subsistem.

PEP dapat mengabaikan nilai ini.

[out] SubsystemHandle

Penunjuk konteks tempat PEP dapat secara opsional menetapkan nilai. Ini akan menerima pointer pada pemberitahuan berikutnya untuk subsistem khusus ini. Dalam pemberitahuan berikutnya, PEP menggunakan PlatformIdleStateIndex bersama dengan SubsystemName dan/atau SubsystemHandle untuk mencari data akuntansi subsistem tertentu.

Secara default, nilai jika anggota ini adalah nol. Nilai ini diabaikan oleh OS dan hanya digunakan dalam pemberitahuan.

PEP tidak diperlukan untuk mengisi anggota ini.

[in/out] ParentName

Buffer untuk menyimpan nama induk subsistem yang sesuai. Setiap subsistem memiliki induk dan subsistem dengan nilai yang sama untuk ParentName dianggap sebagai saudara kandung. Hierarki saudara subsistem bersifat opsional. Dengan tidak adanya hierarki apa pun, semua subsistem adalah subsistem tingkat atas dan menentukan nilai umum untuk ParentName. Untuk menunjukkan hierarki, subsistem tingkat atas menentukan ParentName umum sementara setiap subsistem tingkat non-atas menentukan SubsistemName subsistem induknya untuk ParentName.

Sebelum entri, kernel akan:

  • Pra-alokasikan 64 WCHAR untuk ParentName.Buffer[]
  • Nol buffer
  • Atur ParentName.MaximumLength ke ukuran buffer dalam byte, dan
  • Atur ParentName.Length = 0
Sebelum keluar, PEP harus menyalin string yang dihentikan null ke ParentName.Buffer dan memperbarui ParentName.Length dengan jumlah byte yang merupakan sizeof(WCHAR) kali jumlah karakter UNICODE disalin, tidak termasuk UNICODE_NULL yang mengakhiri.

PEP harus menggunakan memori yang dialokasikan yang dialokasikan yang dialokasikan oleh alamat di ParentName.Buffer untuk memberikan nama induk. Karena memori ini telah dialokasikan sebelumnya, ukurannya tidak dapat diubah. PEP bertanggung jawab untuk memotong nama induk, jika perlu, sehingga tidak melebihi panjang yang ditentukan dalam ParentName.MaximumLength (termasuk mengakhiri karakter UNICODE_NULL ).

[in/out] SubsystemName

Buffer untuk menyimpan nama subsistem ini. Setiap subsistem memiliki nama subsistem dan SubsistemName harus unik di antara semua subsistem dalam konteks status diam platform tertentu. SubsistemName subsistem tidak boleh sama dengan ParentName.

Sebelum entri, kernel akan:

  • Pra-alokasikan 64 WCHAR untuk SubsystemName.Buffer[]
  • Nol buffer
  • Atur SubsystemName.MaximumLength ke ukuran buffer dalam byte, dan
  • Atur SubsystemName.Length = 0
Sebelum keluar, PEP harus menyalin string yang dihentikan null ke SubsystemName.Buffer dan memperbarui SubsystemName.Length dengan jumlah byte yang merupakan sizeof(WCHAR) kali jumlah karakter UNICODE disalin, tidak termasuk UNICODE_NULL penghentian.

PEP harus menggunakan memori yang dialokasikan yang dialokasikan yang diarahkan oleh alamat di SubsystemName.Buffer untuk memberikan nama subsistem. Karena memori ini telah dialokasikan sebelumnya, ukurannya tidak dapat diubah. PEP bertanggung jawab untuk memotong nama subsistem, jika perlu, sehingga tidak melebihi panjang yang ditentukan dalam SubsystemName.MaximumLength (termasuk karakter UNICODE_NULL yang mengakhiri).

[out] MetadataCount

Jumlah pasangan string kunci/nilai metadata yang diikat oleh subsistem SoC ini.

Metadata bersifat opsional. PEP mengembalikan nol jika tidak melaporkan metadata apa pun untuk subsistem SoC ini.

Flags

Anggota ini dicadangkan dan harus diatur ke nol.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Didukung dimulai dengan Windows 10.
Header pep_x.h (termasuk Pep_x.h)

Lihat juga

pemberitahuan PEP_DPM_QUERY_SOC_SUBSYSTEM