00001 #ifndef _ENUM2_H_
00002 #define _ENUM2_H_
00003
00004
00005 #include <stdio.h>
00006
00007 #include <windows.h>
00008 #include <psapi.h>
00009 #include <shlwapi.h>
00010
00011 #pragma comment(lib, "ws2_32.lib")
00012 #pragma comment(lib, "advapi32.lib")
00013 #pragma comment(lib, "shlwapi.lib")
00014 #pragma comment(lib, "psapi.lib")
00015
00016 typedef struct _credenciales{
00017 HANDLE hToken;
00018 DWORD pid;
00019 char user[256];
00020 SYSTEMTIME SystemTime;
00021 } CREDENCIALES;
00022
00023 #define MAX_USERS 1000
00024
00025 typedef LONG NTSTATUS;
00026 typedef VOID *POBJECT;
00027
00028 typedef struct _SYSTEM_HANDLE {
00029 ULONG uIdProcess;
00030 UCHAR ObjectType;
00031 UCHAR Flags;
00032 USHORT Handle;
00033 POBJECT pObject;
00034 ACCESS_MASK GrantedAccess;
00035 } SYSTEM_HANDLE, *PSYSTEM_HANDLE;
00036
00037 typedef struct _SYSTEM_HANDLE_INFORMATION {
00038 ULONG uCount;
00039 SYSTEM_HANDLE Handles[1];
00040 } SYSTEM_HANDLE_INFORMATION, *PSYSTEM_HANDLE_INFORMATION;
00041
00042 typedef struct _UNICODE_STRING {
00043 USHORT Length;
00044 USHORT MaximumLength;
00045 PWSTR Buffer;
00046 } UNICODE_STRING;
00047
00048 typedef UNICODE_STRING *PUNICODE_STRING;
00049 typedef const UNICODE_STRING *PCUNICODE_STRING;
00050
00051 typedef UNICODE_STRING OBJECT_NAME_INFORMATION;
00052 typedef UNICODE_STRING *POBJECT_NAME_INFORMATION;
00053
00054
00055 typedef enum _OBJECT_INFORMATION_CLASS{
00056 ObjectBasicInformation,
00057 ObjectNameInformation,
00058 ObjectTypeInformation,
00059 ObjectAllTypesInformation,
00060 ObjectHandleInformation
00061 } OBJECT_INFORMATION_CLASS;
00062
00063 #define STATUS_SUCCESS ((NTSTATUS)0x00000000L)
00064 #define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xC0000004L)
00065 #define STATUS_BUFFER_OVERFLOW ((NTSTATUS)0x80000005L)
00066 #define SystemHandleInformation 16
00067
00068
00069
00070 typedef NTSTATUS (WINAPI *NTQUERYSYSTEMINFORMATION)(DWORD SystemInformationClass,
00071 PVOID SystemInformation,
00072 DWORD SystemInformationLength,
00073 PDWORD ReturnLength);
00074
00075 typedef NTSTATUS (WINAPI *NTQUERYOBJECT)(
00076 HANDLE ObjectHandle,
00077 OBJECT_INFORMATION_CLASS ObjectInformationClass,
00078 PVOID ObjectInformation,
00079 DWORD Length,
00080 PDWORD ResultLength);
00081
00082
00083 typedef NTSTATUS (WINAPI *NTCOMPARETOKENS) (
00084 HANDLE FirstTokenHandle,
00085 HANDLE SecondTokenHandle,
00086 PBOOLEAN Equal
00087 );
00088
00089
00090
00091
00092 #endif