
#ifndef __SERVICES_H_
#define __SERVICES_H_

/** 
 * @file: services.h
 *
 * Toto je hlavickovy soubor k services.c, ktery implementuje obdobu
 * systemovych volani pro zjistovani informaci o objektech exekutivy
 * pomoci frameworku ovladace objview.sys. Tyto rutiny tvori prechod
 * mezi rutinou obsluhujici pozadavky na zarizeni ovladace a samotnym
 * frameworkem.
 */

#include <ntddk.h>
#include "driver.h"

// Vyznam jednotlivych funkci najdete v komentarich u jejich implementace
// v souboru services.c

NTSTATUS OpenObjectService(POBJVIEW_OPEN_IN InBuffer, ULONG32 InBufferLength, POBJVIEW_OPEN_OUT OutBuffer);
NTSTATUS CloseObjectService(POBJVIEW_CLOSE_IN Buffer);
NTSTATUS GetObjectHeaderService(POBJVIEW_GET_HEADER_IN InBuffer, POBJVIEW_GET_HEADER_OUT OutBuffer);
NTSTATUS GetObjectNameInfoService(POBJVIEW_GET_NAME_INFO_IN InBuffer, POBJVIEW_GET_NAME_INFO_OUT OutBuffer, PULONG32 OutBufferLength);
NTSTATUS GetObjectQuotaInfoService(POBJVIEW_GET_QUOTA_INFO_IN InBuffer, POBJVIEW_GET_QUOTA_INFO_OUT OutBuffer);
NTSTATUS GetObjectCreatorInfoService(POBJVIEW_GET_CREATOR_INFO_IN InBuffer, POBJVIEW_GET_CREATOR_INFO_OUT OutBuffer);
NTSTATUS GetObjectTypeInfoService(POBJVIEW_GET_TYPE_INFO_IN InBuffer, POBJVIEW_GET_TYPE_INFO_OUT OutBuffer, PULONG32 OutBufferLength);
NTSTATUS GetObjectHandleInfoService(POBJVIEW_GET_HANDLE_INFO_IN InBuffer, POBJVIEW_GET_HANDLE_INFO_OUT OutBuffer, PULONG32 OutBufferLength);
NTSTATUS GetObjectSpecificInfoService(POBJVIEW_GET_SPECIFIC_INFO_IN InBuffer, PVOID OutBuffer, PULONG32 OutBufferLength);

#endif
