我使用“ntQuerySystemInformation”来获取所有句柄信息,例如:
NtQuerySystemInformation(SystemHandleInformation, pHandleInfor, ulSize,NULL);//SystemHandleInformation = 16
pHandleInfor 的结构是:
typedef struct _SYSTEM_HANDLE_INFORMATION
{
ULONG ProcessId;
UCHAR ObjectTypeNumber;
UCHAR Flags;
USHORT Handle;
PVOID Object;
ACCESS_MASK GrantedAccess;
} SYSTEM_HANDLE_INFORMATION, *PSYSTEM_HANDLE_INFORMATION;
它在xp 32bit下运行良好,但是在Win7 64bit下只能得到小于65535的正确pid。这个结构中processId的类型是ULONG,我认为它可以得到大于65535的。它有什么问题?有没有其他 API 代替?