www.pudn.com > tdi_fw.zip > tdi_fw.h


// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil -*- (for GNU Emacs) 
// 
// $Id: tdi_fw.h,v 1.5 2002/12/05 13:01:53 dev Exp $ 
 
#ifndef _tdi_fw_h_ 
#define _tdi_fw_h_ 
 
extern PDEVICE_OBJECT g_tcpfltobj, g_udpfltobj, g_ipfltobj; 
 
#ifndef USE_TDI_HOOKING 
// original (unhooked) device objects when don't using TDI hooking 
extern PDEVICE_OBJECT g_tcpoldobj, g_udpoldobj, g_ipoldobj; 
#endif 
 
extern ULONG g_got_control; 
 
NTSTATUS tdi_dispatch_complete( 
	PDEVICE_OBJECT devobj, PIRP irp, int filter, PIO_COMPLETION_ROUTINE cr, PVOID context); 
 
NTSTATUS tdi_generic_complete( 
	IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context); 
 
PDEVICE_OBJECT	get_original_devobj(PDEVICE_OBJECT flt_devobj, int *proto); 
 
// should be in ipc.h but not there 
NTSTATUS	process_request(ULONG code, char *buf, ULONG *buf_len, ULONG buf_size); 
 
/* some Native API prototypes */ 
 
NTKERNELAPI 
NTSTATUS 
ObReferenceObjectByName ( 
    IN PUNICODE_STRING  ObjectName, 
    IN ULONG            Attributes, 
    IN PACCESS_STATE    PassedAccessState OPTIONAL, 
    IN ACCESS_MASK      DesiredAccess OPTIONAL, 
    IN POBJECT_TYPE     ObjectType OPTIONAL, 
    IN KPROCESSOR_MODE  AccessMode, 
    IN OUT PVOID        ParseContext OPTIONAL, 
    OUT PVOID           *Object 
); 
 
NTSTATUS 
NTAPI 
ZwCreateEvent ( 
    OUT PHANDLE             EventHandle, 
    IN ACCESS_MASK          DesiredAccess, 
    IN POBJECT_ATTRIBUTES   ObjectAttributes OPTIONAL, 
    IN EVENT_TYPE           EventType, 
    IN BOOLEAN              InitialState 
); 
 
/* for compilation under NT4 DDK */ 
 
#ifndef EVENT_ALL_ACCESS 
#   define EVENT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3) 
#endif 
 
#ifndef IoSkipCurrentIrpStackLocation 
#   define IoSkipCurrentIrpStackLocation(Irp) \ 
    (Irp)->CurrentLocation++; \ 
    (Irp)->Tail.Overlay.CurrentStackLocation++; 
#endif 
 
extern POBJECT_TYPE	IoDriverObjectType; 
 
#endif