📄 group__npf__include.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>WinPcap: NPF structures and definitions</title><link href="style.css" rel="stylesheet" type="text/css"><link href="tabs.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.5.6 --><div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="main.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div></div><div class="contents"><h1>NPF structures and definitions<br><small>[<a class="el" href="group__NPF.html">NPF driver internals manual</a>]</small></h1><table border="0" cellpadding="0" cellspacing="0"><tr><td></td></tr><tr><td colspan="2"><br><h2>Data Structures</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structpacket__file__header.html">packet_file_header</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Header of a libpcap dump file. <a href="structpacket__file__header.html#_details">More...</a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structsf__pkthdr.html">sf_pkthdr</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Header associated to a packet in the driver's buffer when the driver is in dump mode. Similar to the bpf_hdr structure, but simpler. <a href="structsf__pkthdr.html#_details">More...</a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__PACKET__OID__DATA.html">_PACKET_OID_DATA</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Structure containing an OID request. <a href="struct__PACKET__OID__DATA.html#_details">More...</a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__INTERNAL__REQUEST.html">_INTERNAL_REQUEST</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Stores an OID request. <a href="struct__INTERNAL__REQUEST.html#_details">More...</a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__PACKET__RESERVED.html">_PACKET_RESERVED</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Contains a NDIS packet. <a href="struct__PACKET__RESERVED.html#_details">More...</a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__DEVICE__EXTENSION.html">_DEVICE_EXTENSION</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Port device extension. <a href="struct__DEVICE__EXTENSION.html#_details">More...</a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="struct____CPU__Private__Data.html">__CPU_Private_Data</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Kernel buffer of each CPU. <a href="struct____CPU__Private__Data.html#_details">More...</a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__OPEN__INSTANCE.html">_OPEN_INSTANCE</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Contains the state of a running instance of the NPF driver. <a href="struct__OPEN__INSTANCE.html#_details">More...</a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structPacketHeader.html">PacketHeader</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Structure prepended to each packet in the kernel buffer pool. <a href="structPacketHeader.html#_details">More...</a><br></td></tr><tr><td colspan="2"><br><h2>Defines</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#g8fc96cee4177a369a99de7026ebeba81">MAX_REQUESTS</a> 32</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Maximum number of simultaneous IOCTL requests. <a href="#g8fc96cee4177a369a99de7026ebeba81"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#g8463d2101446f74b83ed10006d772384">Packet_ALIGNMENT</a> sizeof(int)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Alignment macro. Defines the alignment size. <a href="#g8463d2101446f74b83ed10006d772384"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#g6ad53095b69ed77878dc683754e3264a">Packet_WORDALIGN</a>(x) (((x)+(Packet_ALIGNMENT-1))&~(Packet_ALIGNMENT-1))</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">even multiple of Packet_ALIGNMENT. <a href="#g6ad53095b69ed77878dc683754e3264a"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#g9cd2ca337001428aa9e1cb512a28ecc2">KERNEL_EVENT_NAMESPACE</a> L"\\BaseNamedObjects\\"</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#gc93c0a6ad1d2a3143b1115bdab3ac04d">MODE_CAPT</a> 0x0</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Capture working mode. <a href="#gc93c0a6ad1d2a3143b1115bdab3ac04d"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#g503326906a62e96c147ae6af31fb5659">MODE_STAT</a> 0x1</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Statistical working mode. <a href="#g503326906a62e96c147ae6af31fb5659"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#g528e7e542cb1a028a10a3a318880dffb">MODE_MON</a> 0x2</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Kernel monitoring mode. <a href="#g528e7e542cb1a028a10a3a318880dffb"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#g89853f93dc8cc890b0665629d16d2831">MODE_DUMP</a> 0x10</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Kernel dump working mode. <a href="#g89853f93dc8cc890b0665629d16d2831"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#g4f6749b7708a411df2a3341a3fcef917">IMMEDIATE</a> 1</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Immediate timeout. Forces a read call to return immediately. <a href="#g4f6749b7708a411df2a3341a3fcef917"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#g0a110077bb4fcbcc75512d8988c90de8">NDIS_FLAGS_SKIP_LOOPBACK_W2K</a> 0x400</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">This is an undocumented flag for NdisSetPacketFlags() that allows to disable loopback reception. <a href="#g0a110077bb4fcbcc75512d8988c90de8"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#gfedcc0aa0cf5abe7b20c68eefdfcb126">TCPDUMP_MAGIC</a> 0xa1b2c3d4</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Libpcap magic number. Used by programs like tcpdump to recognize a driver's generated dump file. <a href="#gfedcc0aa0cf5abe7b20c68eefdfcb126"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#gac031371d41e21ff96e80409e05a7ddb">PCAP_VERSION_MAJOR</a> 2</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Major libpcap version of the dump file. Used by programs like tcpdump to recognize a driver's generated dump file. <a href="#gac031371d41e21ff96e80409e05a7ddb"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#g9c200b070c9f626d38184588b16849c2">PCAP_VERSION_MINOR</a> 4</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Minor libpcap version of the dump file. Used by programs like tcpdump to recognize a driver's generated dump file. <a href="#g9c200b070c9f626d38184588b16849c2"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#g7ccc8974741059b5ae25231a56dbed09">NPF_DISABLE_LOOPBACK</a> 1</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Tells the driver to drop the packets sent by itself. This is usefult when building applications like bridges. <a href="#g7ccc8974741059b5ae25231a56dbed09"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#g4a60d1f215d5b2af2b3b86a0f2a90ae2">NPF_ENABLE_LOOPBACK</a> 2</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Tells the driver to capture the packets sent by itself. <a href="#g4a60d1f215d5b2af2b3b86a0f2a90ae2"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#g7300b6880da1b61717e7ff815d579bf6">C_ASSERT</a>(a)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#g048ba8dfabc6ac16c602a1ca6fe994fc">RESERVED</a>(_p) ((<a class="el" href="struct__PACKET__RESERVED.html">PPACKET_RESERVED</a>)((_p)->ProtocolReserved))</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Macro to obtain a NDIS_PACKET from a PACKET_RESERVED. <a href="#g048ba8dfabc6ac16c602a1ca6fe994fc"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#g652e6173ee1441712652d74a5533e042">TRANSMIT_PACKETS</a> 256</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">of packets that can be transmitted at the same time or with a single call to NdisSendPackets. <a href="#g652e6173ee1441712652d74a5533e042"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#gcabf25322566f3bcd1e564e4939f5821">EXIT_SUCCESS</a>(quantity)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Macro used in the I/O routines to return the control to user-mode with a success status. <a href="#gcabf25322566f3bcd1e564e4939f5821"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#gd6d1f5522a147ddeb7d9b11916acd50a">EXIT_FAILURE</a>(quantity)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Macro used in the I/O routines to return the control to user-mode with a failure status. <a href="#gd6d1f5522a147ddeb7d9b11916acd50a"></a><br></td></tr><tr><td colspan="2"><br><h2>Typedefs</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="struct__PACKET__OID__DATA.html">_PACKET_OID_DATA</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#g0c7b0f53860e1de014069aad53987bc6">PACKET_OID_DATA</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Structure containing an OID request. <a href="#g0c7b0f53860e1de014069aad53987bc6"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="struct__PACKET__OID__DATA.html">_PACKET_OID_DATA</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#gdf678e4006b707eb64a691e611975b22">PPACKET_OID_DATA</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="struct__INTERNAL__REQUEST.html">_INTERNAL_REQUEST</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#g0bee4ca4dc129822e19478f88d991a31">INTERNAL_REQUEST</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Stores an OID request. <a href="#g0bee4ca4dc129822e19478f88d991a31"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="struct__INTERNAL__REQUEST.html">_INTERNAL_REQUEST</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#g55591a7d14855359ed1e3995f7f025c3">PINTERNAL_REQUEST</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="struct__PACKET__RESERVED.html">_PACKET_RESERVED</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#g2225b3cfa793593a1849aa0652846a5c">PACKET_RESERVED</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Contains a NDIS packet. <a href="#g2225b3cfa793593a1849aa0652846a5c"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="struct__PACKET__RESERVED.html">_PACKET_RESERVED</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#g375d9973bbbe748c9722e8f546beb10c">PPACKET_RESERVED</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="struct__DEVICE__EXTENSION.html">_DEVICE_EXTENSION</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#g5091b7a273db5d38a71df5293eb52ccf">DEVICE_EXTENSION</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Port device extension. <a href="#g5091b7a273db5d38a71df5293eb52ccf"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="struct__DEVICE__EXTENSION.html">_DEVICE_EXTENSION</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#gc8ad25578be589c8352fc4e1a8a99be3">PDEVICE_EXTENSION</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="struct____CPU__Private__Data.html">__CPU_Private_Data</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#g321d8c7f608d41e095ec3508cff10764">CpuPrivateData</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Kernel buffer of each CPU. <a href="#g321d8c7f608d41e095ec3508cff10764"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="struct__OPEN__INSTANCE.html">_OPEN_INSTANCE</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#gfeddf3a08e141d369532061f3f8cd939">OPEN_INSTANCE</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Contains the state of a running instance of the NPF driver. <a href="#gfeddf3a08e141d369532061f3f8cd939"></a><br></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">typedef struct <a class="el" href="struct__OPEN__INSTANCE.html">_OPEN_INSTANCE</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#gd3b7ff25cfe0e8fd50666782f85e76cb">POPEN_INSTANCE</a></td></tr><tr><td colspan="2"><br><h2>Enumerations</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#ga80226df1c5ee18b01580d23ed4f31cb">ADAPTER_BINDING_STATUS</a> { <a class="el" href="group__NPF__include.html#gga80226df1c5ee18b01580d23ed4f31cb6e4cdf9f09abf447cffdfd5058357822">ADAPTER_UNBOUND</a>, <a class="el" href="group__NPF__include.html#gga80226df1c5ee18b01580d23ed4f31cb3e0c0f314d2e9dc41c205ab44bf087bc">ADAPTER_BOUND</a>, <a class="el" href="group__NPF__include.html#gga80226df1c5ee18b01580d23ed4f31cbdc92e852ef35fac0f033487a3be66a93">ADAPTER_UNBINDING</a> }</td></tr><tr><td colspan="2"><br><h2>Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#g6259f706c0907d31a1476960233222c6">C_ASSERT</a> (sizeof(<a class="el" href="struct__PACKET__OID__DATA.html">PACKET_OID_DATA</a>)==12)</td></tr><tr><td colspan="2"><br><h2>Variables</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">ULONG </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#g980b14c18716a1788990f8e68fed9420">g_NCpu</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">NDIS_HANDLE </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#g5d6fbe2176d19b191fa7aaac4d6d6bb5">g_NdisProtocolHandle</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">struct time_conv </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#g8bd3dab633cae7a1a47c4ddb2705a31b">G_Start_Time</a></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">UINT </td><td class="memItemRight" valign="bottom"><a class="el" href="group__NPF__include.html#gb325d08691ab69e4f942f6a418a41db2">g_SendPacketFlags</a></td></tr></table><hr><h2>Define Documentation</h2><a class="anchor" name="g7300b6880da1b61717e7ff815d579bf6"></a><!-- doxytag: member="Packet.h::C_ASSERT" ref="g7300b6880da1b61717e7ff815d579bf6" args="(a)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">#define C_ASSERT </td> <td>(</td> <td class="paramtype">a </td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table></div><div class="memdoc"><p><p>Definition at line <a class="el" href="Packet_8h-source.html#l00133">133</a> of file <a class="el" href="Packet_8h-source.html">Packet.h</a>.</p></div></div><p><a class="anchor" name="gd6d1f5522a147ddeb7d9b11916acd50a"></a><!-- doxytag: member="Packet.h::EXIT_FAILURE" ref="gd6d1f5522a147ddeb7d9b11916acd50a" args="(quantity)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">#define EXIT_FAILURE </td> <td>(</td> <td class="paramtype">quantity </td> <td class="paramname"> </td> <td> ) </td> <td></td> </tr> </table></div><div class="memdoc"><p><b>Value:</b><div class="fragment"><pre class="fragment">Irp->IoStatus.Information=quantity;\ Irp->IoStatus.Status = STATUS_UNSUCCESSFUL;\ IoCompleteRequest(Irp, IO_NO_INCREMENT);\ <span class="keywordflow">return</span> STATUS_UNSUCCESSFUL;\</pre></div>Macro used in the I/O routines to return the control to user-mode with a failure status. <p><p>Definition at line <a class="el" href="Packet_8h-source.html#l00360">360</a> of file <a class="el" href="Packet_8h-source.html">Packet.h</a>.</p></div></div><p><a class="anchor" name="gcabf25322566f3bcd1e564e4939f5821"></a><!-- doxytag: member="Packet.h::EXIT_SUCCESS" ref="gcabf25322566f3bcd1e564e4939f5821" args="(quantity)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">#define EXIT_SUCCESS </td> <td>(</td>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -