
#ifndef __DRV_H_
#define __DRV_H_

/** 
 * @file: drv.h
 *
 * Tento soubor obsahuje definice konstant a hlavicek funkci, ktere
 * se pouzivaji v hlavnim souboru programu (drv.c).
 */

#include <windows.h>



// Mody operaci
#define METHOD_NTLD            "-ntld"         // Service Control Manager
#define METHOD_NTSSI           "-ntssi"        // NtLoadDriver
#define METHOD_SCM             "-scm"          // NtSetSystemInformation

// Druhy operaci
#define COMMAND_INSTALL        "install"       // Instalace ovladace
#define COMMAND_LOAD           "load"          // Nacteni ovladace do jadra
#define COMMAND_UNLOAD         "unload"        // Uvolneni ovladace z jadra
#define COMMAND_UNINSTALL      "uninstall"     // Odinstalovani ovladace

// Devinice pro funkce provadejici jednotlive operace. Program podle
// modu operaci do promenne pro kazdou operaci nahraje adresu prislusne
// funkce.
typedef BOOL (*INSTALLDRIVERFUNC)(IN PWCHAR DriverName, IN PWCHAR FileName);
typedef BOOL (*UNINSTALLDRIVERFUNC)(IN PWCHAR DriverName);
typedef BOOL (*LOADDRIVERFUNC)(IN PWCHAR DriverName);
typedef BOOL (*UNLOADDRIVERFUNC)(IN PWCHAR DriverName);



extern int main(int argc, CHAR **argv);



#endif
