#include <stdio.h>
#define WIN32_NO_STATUS
#include <windows.h>
+#include <netevent.h>
#define NTOS_MODE_USER
#include <ndk/ntndk.h>
#include <services/services.h>
typedef struct _SERVICE_IMAGE
{
- DWORD dwServiceRefCount; // Number of running services of this image
- DWORD Dummy;
+ LIST_ENTRY ImageListEntry;
+ DWORD dwImageRunCount;
+
+ HANDLE hControlPipe;
+ HANDLE hProcess;
+ DWORD dwProcessId;
+
+ WCHAR szImagePath[1];
} SERVICE_IMAGE, *PSERVICE_IMAGE;
BOOLEAN ServiceVisited;
- HANDLE ControlPipeHandle;
- ULONG ProcessId;
- ULONG ThreadId;
-
WCHAR szServiceName[1];
} SERVICE, *PSERVICE;
extern LIST_ENTRY ServiceListHead;
extern LIST_ENTRY GroupListHead;
+extern LIST_ENTRY ImageListHead;
extern BOOL ScmShutdown;
/* services.c */
VOID PrintString(LPCSTR fmt, ...);
+VOID ScmLogError(DWORD dwEventId,
+ WORD wStrings,
+ LPCWSTR *lpStrings);
/* EOF */