Pytanie : fltdefs.h źródło, używać Russell (rllibby)

http://www.ndis.com/papers/winpktfilter.htm#W2KPktFilterInterface
The źródło być usuwać w ndis papier połączenie;
Gdzie móc I ono?  The połączenie.

I I także pytać;
Delphi7/9
I zapora w dukt lub 7 od delphi7/9?
Dokąd być the źródło  The połączenie.

Dzięki.
(1):
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
//This być the delphi zamiana fltdefs.h, ale dokąd być the źródło?

jednostka fltdefs;
////////////////////////////////////////////////////////////////////////////////
//
//   Delphi zamiana fltdefs.h dla use z the IPHLPAPI.DLL
//
////////////////////////////////////////////////////////////////////////////////
interfejs

uses
  Windows;

const
  IPHLPAPI          =  "IPHLPAPI.DLL";

// Bajt szyk
typ
  TByteArray        =  Szyk [(0). Pred (MaxInt)] Bajt;
  PByteArray        =  ^TByteArray;

// Dane typ
typ
  FILTER_HANDLE     =  Pointer;
  PFILTER_HANDLE    =  ^FILTER_HANDLE;
  INTERFACE_HANDLE  =  Pointer;
  PINTERFACE_HANDLE =  ^INTERFACE_HANDLE;

// GlobalFilter wyliczenie
const
  GF_FRAGMENTS      =  2;
  GF_STRONGHOST     =  8;
  GF_FRAGCACHE      =  9;

typ
  GLOBAL_FILTER     =  Integer;
  PGLOBAL_FILTER    =  ^GLOBAL_FILTER;

// PFAddressType wyliczenie
const
  PF_IPV4           =  (0);
  PF_IPV6           =  (1);

typ
  PFADDRESSTYPE     =  Integer;
  PPFADDRESSTYPE    =  ^PFADDRESSTYPE;

// PFForwardAction wyliczenie
const
  PF_ACTION_FORWARD =  (0);
  PF_ACTION_DROP    =  (1);

typ
  PFFORWARD_ACTION  =  Integer;
  PPFFORWARD_ACTION =  ^PPFFORWARD_ACTION;

// PFFrameType wyliczenie
const
  PFFT_FILTER       =  (1);
  PFFT_FRAG         =  2;
  PFFT_SPOOF        =  3;

typ
  PFFRAMETYPE       =  Integer;
  PPFFRAMETYPE      =  ^PFFRAMETYPE;

typ
  _PF_FILTER_DESCRIPTOR   =  pakować rejestr
     dwFilterFlags:       DWORD;
     dwRule:              DWORD;
     pfatType:            PFADDRESSTYPE;
     SrcAddr:             PByteArray;
     SrcMask:             PByteArray;
     DstAddr:             PByteArray;
     DstMask:             PByteArray;
     dwProtocol:          DWORD;
     fLateBound:          DWORD;
     wSrcPort:            Słowo;
     wDstPort:            Słowo;
     wSrcPortHighRange:   Słowo;
     wDstPortHighRange:   Słowo;
  końcówka;
  PF_FILTER_DESCRIPTOR    =  _PF_FILTER_DESCRIPTOR;
  PPF_FILTER_DESCRIPTOR   =  ^PF_FILTER_DESCRIPTOR;

typ
  _PF_FILTER_STATS        =  pakować rejestr
     dwNumPacketsFiltered: DWORD;
     info:                PF_FILTER_DESCRIPTOR;
  końcówka;
  PF_FILTER_STATS         =  _PF_FILTER_STATS;
  PPF_FILTER_STATS        =  ^PF_FILTER_STATS;

typ
  _PF_INTERFACE_STATS     =  pakować rejestr
     pvDriverContext:     Pointer;
     dwFlags:             DWORD;
     dwInDrops:           DWORD;
     dwOutDrops:          DWORD;
     eaInAction:          PFFORWARD_ACTION;
     eaOutAction:         PFFORWARD_ACTION;
     dwNumInFilters:      DWORD;
     dwNumOutFilters:     DWORD;
     dwFrag:              DWORD;
     dwSpoof:             DWORD;
     dwReserved1:         DWORD;
     dwReserved2:         DWORD;
     liSyn:               LARGE_INTEGER;
     liTotalLogged:       LARGE_INTEGER;
     dwLostLogEntries:    DWORD;
     FilterInfo:          Szyk [0..0] PF_FILTER_STATS;
  końcówka;
  PF_INTERFACE_STATS      =  _PF_INTERFACE_STATS;
  PPF_INTERFACE_STATS     =  ^PF_INTERFACE_STATS;

typ
  _PF_LATEBIND_INFO       =  pakować rejestr
     SrcAddr:             PByteArray;
     DstAddr:             PByteArray;
     Maska:                PByteArray;
  końcówka;
  PF_LATEBIND_INFO        =  _PF_LATEBIND_INFO;
  PPF_LATEBIND_INFO       =  ^PF_LATEBIND_INFO;

typ
  _PFLOGFRAME             =  pakować rejestr
     Timestamp:           LARGE_INTEGER;
     pfeTypeOfFrame:      PFFRAMETYPE;
     dwTotalSizeUsed:     DWORD;
     dwFilterRule:        DWORD;
     wSizeOfAdditionalData: Słowo;
     wSizeOfIpHeader:     Słowo;
     dwInterfaceName:     DWORD;
     dwIPIndex:           DWORD;
     bPacketData:         Szyk [0..0] Bajt;
  końcówka;
  PFLOGFRAME              =  _PFLOGFRAME;
  PPFLOGFRAME             =  ^PFLOGFRAME;

const
  FILTER_PROTO_ANY        =  $00;
  FILTER_PROTO_ICMP       =  $01;
  FILTER_PROTO_TCP        =  $06;
  FILTER_PROTO_UDP        =  $11;
  FILTER_TCPUDP_PORT_ANY  =  $00;

const
  FILTER_ICMP_TYPE_ANY    =  $FF;
  FILTER_ICMP_CODE_ANY    =  $FF;

const
  FD_FLAGS_NOSYN          =  $01;
  FD_FLAGS_ALLFLAGS       =  FD_FLAGS_NOSYN;

const
  LB_SRC_ADDR_USE_SRCADDR_FLAG  =  $00000001;
  LB_SRC_ADDR_USE_DSTADDR_FLAG  =  $00000002;
  LB_DST_ADDR_USE_SRCADDR_FLAG  =  $00000004;
  LB_DST_ADDR_USE_DSTADDR_FLAG  =  $00000008;
  LB_SRC_MASK_LATE_FLAG         =  $00000010;
  LB_DST_MASK_LATE_FLAG         =  $00000020;

const
  ERROR_BASE                    =  23000;
  PFERROR_NO_PF_INTERFACE       =  (ERROR_BASE + (0)); // nigdy wracać.
  PFERROR_NO_FILTERS_GIVEN      =  (ERROR_BASE + 1);
  PFERROR_BUFFER_TOO_SMALL      =  (ERROR_BASE + 2);
  ERROR_IPV6_NOT_IMPLEMENTED    =  (ERROR_BASE + 3);

////////////////////////////////////////////////////////////////////////////////
//
// Filtrowy funkcja eksportować IPHLPAPI
//
////////////////////////////////////////////////////////////////////////////////
funkcja   PfCreateInterface (
           dwName:           DWORD;
           bierność:         PFFORWARD_ACTION;
           outAction:        PFFORWARD_ACTION;
           bUseLog:          BOOL;
           bMustBeUnique:    BOOL;
           var ppInterface:  INTERFACE_HANDLE): DWORD;
           stdcall; external IPHLPAPI imię "_PfCreateInterface@24";

funkcja   PfDeleteInterface (
           pInterface:       INTERFACE_HANDLE): DWORD;
           stdcall; external IPHLPAPI imię "_PfDeleteInterface@4";

funkcja   PfAddFiltersToInterface (
           ih:               INTERFACE_HANDLE;
           cInFilters:       DWORD;
           pfiltIn:          PPF_FILTER_DESCRIPTOR;
           cOutFilters:      DWORD;
           pfiltOut:         PPF_FILTER_DESCRIPTOR;
           pfHandle:         PFILTER_HANDLE): DWORD;
           stdcall; external IPHLPAPI imię "_PfAddFiltersToInterface@24";

funkcja   PfRemoveFiltersFromInterface (
           ih:               INTERFACE_HANDLE;
           cInFilters:       DWORD;
           pfiltIn:          PPF_FILTER_DESCRIPTOR;
           cOutFilters:      DWORD;
           pfiltOut:         PPF_FILTER_DESCRIPTOR): DWORD;
           stdcall; external IPHLPAPI imię "_PfRemoveFiltersFromInterface@20";

funkcja   PfRemoveFilterHandles (
           pInterface:       INTERFACE_HANDLE;
           cFilters:         DWORD;
           pvHandles:        PFILTER_HANDLE): DWORD;
           stdcall; external IPHLPAPI imię "_PfRemoveFilterHandles@12";

funkcja   PfUnBindInterface (
           pInterface:       INTERFACE_HANDLE): DWORD;
           stdcall; external IPHLPAPI imię "_PfUnBindInterface@4";

funkcja   PfBindInterfaceToIndex (
           pInterface:       INTERFACE_HANDLE;
           dwIndex:          DWORD;
           pfatLinkType:     PFADDRESSTYPE;
           LinkIPAddress:    PByteArray): DWORD;
           stdcall; external IPHLPAPI imię "_PfBindInterfaceToIndex@16";

funkcja   PfBindInterfaceToIPAddress (
           pInterface:       INTERFACE_HANDLE;
           pfatLinkType:     PFADDRESSTYPE;
           IPAddress:        PByteArray): DWORD;
           stdcall; external IPHLPAPI imię "_PfBindInterfaceToIPAddress@12";

funkcja   PfRebindFilters (
           pInterface:       INTERFACE_HANDLE;
           pLateBindInfo:    PPF_LATEBIND_INFO): DWORD;
           stdcall; external IPHLPAPI imię "_PfRebindFilters@8";

funkcja   PfAddGlobalFilterToInterface (
           pInterface:       INTERFACE_HANDLE;
           gfFilter:         GLOBAL_FILTER): DWORD;
           stdcall; external IPHLPAPI imię "_PfAddGlobalFilterToInterface@8";

funkcja   PfRemoveGlobalFilterFromInterface (
           pInterface:       INTERFACE_HANDLE;
           gfFilter:         GLOBAL_FILTER): DWORD;
           stdcall; external IPHLPAPI imię "_PfRemoveGlobalFilterFromInterface@8";

////////////////////////////////////////////////////////////////////////////////
//
// Bela APIs. Zauważać że tam  być przy że jeden bela i ono musieć tworzyć
// przed jakaś interfejs ono tworzyć. Tam  być żadny sposób a
// bela na istniejący interfejs. The bela móc stosować wszystko lub wszystko
// the interfejs.
//
///////////////////////////////////////////////////////////////////////
funkcja   PfMakeLog (
           hEvent:           THandle): DWORD;
           stdcall; external IPHLPAPI imię "_PfMakeLog@4";

funkcja   PfSetLogBuffer (
           pbBuffer:         PByteArray;
           dwSize:           DWORD;
           dwThreshold:      DWORD;
           dwEntries:        DWORD;
           pdwLoggedEntries: PDWORD;
           pdwLostEntries:   PDWORD;
           pdwSizeUsed:      PDWORD): DWORD;
           stdcall; external IPHLPAPI imię "_PfSetLogBuffer@28";

funkcja   PfDeleteLog (
           ): DWORD;
           stdcall; external IPHLPAPI imię "_PfDeleteLog@0";

////////////////////////////////////////////////////////////////////////////////
//
// Dostawać statystyki. Notatka pdwBufferSize w IN/OUT parametr. Jeżeli
// ERROR_INSUFFICIENT_BUFFER wracać, the pospolity statystyki być
// dostępny i the poprawny bajt obliczenie być wewnątrz *pdwBufferSize. Jeżeli tylko the
// interfejs statystyki potrzebować, zapewniać odbojnica rozmiar
// PF_INTERFACE_STATS tylko. Jeżeli the filtrowy opis także potrzebować,
// wtedy ximpx wielki odbojnica, lub używać the wracać obliczenie od the pierwszy wezwanie
// odbojnica wystarczający rozmiar. Zauważać interfejs dla podzielony interfejs,
// ten drugi wezwanie móc z ERROR_INSUFFICIENT_BUFFER. To móc
// jeżeli the inny udziałowiec dodawać filtr w the tymczasowy. Dla musieć dla
// UNIKALNY interfejs.
//
////////////////////////////////////////////////////////////////////////////////
funkcja   PfGetInterfaceStatistics (
           pInterface:       INTERFACE_HANDLE;
           ppfStats:         PPF_INTERFACE_STATS;
           pdwBufferSize:    PDWORD;
           fResetCounters:   BOOL): DWORD;
           stdcall; external IPHLPAPI imię "_PfGetInterfaceStatistics@16";

////////////////////////////////////////////////////////////////////////////////
//
// Test paczka. Ten wezwanie oceniać the paczka przeciw the dawać
// interfejs i wracać the akcja.
//
////////////////////////////////////////////////////////////////////////////////
funkcja   PfTestPacket (
           pInInterface:     INTERFACE_HANDLE;
           pOutInterface:    INTERFACE_HANDLE;
           cBytes:           DWORD;
           pbPacket:         PByteArray;
           ppAction:         PPFFORWARD_ACTION): DWORD;
           stdcall; external IPHLPAPI imię "_PfTestPacket@20";

urzeczywistnienie

końcówka.

Odpowiedź : fltdefs.h źródło, używać Russell (rllibby)

DNS lokalizować w twój Domena Kontroler dla ludzie na twój domena (sieć).  Komukolwiek gospodarz twój external DNS czy twój ISP lub musieć jak Sieć Rozwiązanie ty musieć coś.

Jeżeli ty zmieniać OWA bez the DNS rejestr internet twój użytkownik być niezdolny OWA gdy DNS być jak komputer znajdować materiał na the internet.  

Dzięki
Inne rozwiązania  
 
programming4us programming4us