Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
[Fungsi ini tidak didukung dan dapat diubah atau tidak tersedia di masa mendatang.]
Menghitung semua komputer DOS virtual yang menjalankan tugas Windows 16-bit.
Sintaks
INT VDMEnumProcessWOW(
[in] PROCESSENUMPROC fp,
[in] LPARAM lparam
);
Parameter
[in] fp
Penunjuk ke fungsi panggilan balik. Fungsi ini dipanggil untuk setiap VDM yang dijumlahkan. Untuk detailnya, lihat fungsi panggilan balik ProcessVDMs .
[in] lparam
Nilai yang ditentukan pengguna yang diteruskan ke fungsi panggilan balik.
Nilai kembali
Jumlah VDM yang berjalan, atau jumlah yang dijumlahkan sebelum enumerasi dihentikan.
Keterangan
VDM ini berisi tugas WowExec.exe. DOS VDM tidak dijumlahkan. Untuk menghitung DOS VDM, Anda perlu menggunakan metode lain. Pertama, Anda dapat menggunakan VDMEnumProcessWOW() untuk membuat daftar semua VDM Win16, dan kemudian menghitung semua instans NTVDM.exe menggunakan beberapa skema lain (seperti PSAPI). Setiap NTVDM.exe dari enumerasi lengkap yang tidak ada dalam daftar Win16 adalah DOS VDM.
Contoh
Contoh berikut menunjukkan cara menghitung komputer DOS virtual yang menjalankan tugas Windows 16-bit.
// Enumerate all 16-bit tasks on the system.
#include <windows.h>
#include <stdio.h>
#include <vdmdbg.h>
BOOL WINAPI ProcessVDMs( DWORD, DWORD, LPARAM );
BOOL WINAPI ProcessTasks( DWORD, WORD, WORD, PSZ, PSZ, LPARAM );
#pragma comment( lib, "vdmdbg.lib" )
void main()
{
// Enumerate VDMs
VDMEnumProcessWOW(
(PROCESSENUMPROC)ProcessVDMs,
(LPARAM)NULL
);
}
BOOL WINAPI ProcessVDMs( DWORD dwProcessId, DWORD dwAttrib,
LPARAM t )
{
printf("\nProcess ID: %d\n", dwProcessId);
// Use process ID of VDM to enumerate through its tasks
VDMEnumTaskWOWEx(
dwProcessId,
(TASKENUMPROCEX)ProcessTasks,
(LPARAM)NULL
);
// Keep enumerating
return FALSE;
}
BOOL WINAPI ProcessTasks( DWORD dwThreadId, WORD hMod16, WORD hTask16,
PSZ pszModName, PSZ pszFileName, LPARAM lParam )
{
// Print task's information
printf("Thread ID: %d\n", dwThreadId);
printf("Module handle: %d\n", hMod16);
printf("Task handle: %d\n", hTask16);
printf("Module Name: %s\n", pszModName);
printf("File Name: %s\n", pszFileName);
// Keep enumerating
return FALSE;
}
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Windows |
Header | vdmdbg.h |
Pustaka | VdmDbg.lib |
DLL | VdmDbg.dll |