📄 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -