diff fuhtark_test/include/ddk/pfhook.h @ 1500:91c8c3b7cbf0

add: futhark tests for generating vulkan api
author sam <sam@basx.dev>
date Wed, 26 Nov 2025 21:36:48 +0700
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fuhtark_test/include/ddk/pfhook.h	Wed Nov 26 21:36:48 2025 +0700
@@ -0,0 +1,70 @@
+/*
+ * pfhook.h
+ *
+ * Packet filter API
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __PFHOOK_H
+#define __PFHOOK_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define DD_IPFLTRDRVR_DEVICE_NAME         L"\\Device\\IPFILTERDRIVER"
+
+#define INVALID_PF_IF_INDEX               0xffffffff
+#define ZERO_PF_IP_ADDR                   0
+
+typedef ULONG IPAddr;
+
+typedef enum _PF_FORWARD_ACTION {
+	PF_FORWARD = 0,
+	PF_DROP = 1,
+	PF_PASS = 2,
+	PF_ICMP_ON_DROP = 3
+} PF_FORWARD_ACTION;
+
+typedef PF_FORWARD_ACTION
+(NTAPI *PacketFilterExtensionPtr)(
+  IN unsigned char  *PacketHeader,
+  IN unsigned char  *Packet,
+  IN unsigned int  PacketLength,
+  IN unsigned int  RecvInterfaceIndex,
+  IN unsigned int  SendInterfaceIndex,
+  IN IPAddr  RecvLinkNextHop,
+  IN IPAddr  SendLinkNextHop);
+
+typedef struct _PF_SET_EXTENSION_HOOK_INFO {
+  PacketFilterExtensionPtr  ExtensionPointer;
+} PF_SET_EXTENSION_HOOK_INFO, *PPF_SET_EXTENSION_HOOK_INFO;
+
+#define FSCTL_IPFLTRDRVR_BASE             FILE_DEVICE_NETWORK
+
+#define _IPFLTRDRVR_CTL_CODE(function, method, access) \
+  CTL_CODE(FSCTL_IPFLTRDRVR_BASE, function, method, access)
+
+#define IOCTL_PF_SET_EXTENSION_POINTER \
+  _IPFLTRDRVR_CTL_CODE(22, METHOD_BUFFERED, FILE_WRITE_ACCESS)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __PFHOOK_H */