Función VDMEnumProcessWOW (vdmdbg.h)
[Esta función no se admite y puede modificarse o no estar disponible en el futuro].
Enumera todas las máquinas DOS virtuales que ejecutan tareas de Windows de 16 bits.
Sintaxis
INT VDMEnumProcessWOW(
[in] PROCESSENUMPROC fp,
[in] LPARAM lparam
);
Parámetros
[in] fp
Puntero a una función de devolución de llamada. Se llama a la función para cada VDM enumerado. Para más información, consulte la función de devolución de llamada ProcessVDMs .
[in] lparam
Valor definido por el usuario que se pasa a la función de devolución de llamada.
Valor devuelto
Número de máquinas virtuales que se ejecutan o el número enumerado antes de que finalice la enumeración.
Comentarios
Estas máquinas virtuales contienen la tarea WowExec.exe. No se enumeran las máquinas virtuales DOS. Para enumerar máquinas virtuales DOS, debe usar otro método. En primer lugar, puede usar VDMEnumProcessWOW() para crear una lista de todas las máquinas virtuales Win16 y, a continuación, enumerar todas las instancias de NTVDM.exe con algún otro esquema (como PSAPI). Cualquier NTVDM.exe de la enumeración completa que no estaba en la lista win16 es un VDM de DOS.
Ejemplos
En el ejemplo siguiente se muestra cómo enumerar máquinas DOS virtuales que ejecutan tareas de Windows de 16 bits.
// 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;
}
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Windows |
Encabezado | vdmdbg.h |
Library | VdmDbg.lib |
Archivo DLL | VdmDbg.dll |