📄 group__npf__code.html
字号:
<div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">NTSTATUS NPF_QueryRegistryRoutine </td> <td>(</td> <td class="paramtype">IN PWSTR </td> <td class="paramname"> <em>ValueName</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">IN ULONG </td> <td class="paramname"> <em>ValueType</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">IN PVOID </td> <td class="paramname"> <em>ValueData</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">IN ULONG </td> <td class="paramname"> <em>ValueLength</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">IN PVOID </td> <td class="paramname"> <em>Context</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">IN PVOID </td> <td class="paramname"> <em>EntryContext</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table></div><div class="memdoc"><p>Function used by <a class="el" href="group__NPF__code.html#g1a3ce25625792c74e5792b8fa86a489c">NPF_ReadRegistry()</a> to quesry the registry keys associated woth NPF if the driver is manually installed via the control panel. <p>Normally not used in recent versions of NPF. </div></div><p><a class="anchor" name="g827b1433b2d08cbac11b3844d721668f"></a><!-- doxytag: member="Packet.h::NPF_Read" ref="g827b1433b2d08cbac11b3844d721668f" args="(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">NTSTATUS NPF_Read </td> <td>(</td> <td class="paramtype">IN PDEVICE_OBJECT </td> <td class="paramname"> <em>DeviceObject</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">IN PIRP </td> <td class="paramname"> <em>Irp</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table></div><div class="memdoc"><p>Function that serves the user's reads. <p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>DeviceObject</em> </td><td>Pointer to the device used by the user. </td></tr> <tr><td valign="top"></td><td valign="top"><em>Irp</em> </td><td>Pointer to the IRP containing the user request. </td></tr> </table></dl><dl class="return" compact><dt><b>Returns:</b></dt><dd>The status of the operation. See ntstatus.h in the DDK.</dd></dl>This function is called by the OS in consequence of user ReadFile() call. It moves the data present in the kernel buffer to the user buffer associated with Irp. First of all, NPF_Read checks the amount of data in kernel buffer associated with current NPF instance.<ul><li>If the instance is in capture mode and the buffer contains more than <a class="el" href="struct__OPEN__INSTANCE.html#263f7d6f5db5625541d275380685f0b1">OPEN_INSTANCE::MinToCopy</a> bytes, NPF_Read moves the data in the user buffer and returns immediatly. In this way, the read performed by the user is not blocking.</li><li>If the buffer contains less than MinToCopy bytes, the application's request isn't satisfied immediately, but it's blocked until at least MinToCopy bytes arrive from the net or the timeout on this read expires. The timeout is kept in the <a class="el" href="struct__OPEN__INSTANCE.html#a6709070de8443c026e3b86913942c2b">OPEN_INSTANCE::TimeOut</a> field.</li><li>If the instance is in statistical mode or in dump mode, the application's request is blocked until the timeout kept in <a class="el" href="struct__OPEN__INSTANCE.html#a6709070de8443c026e3b86913942c2b">OPEN_INSTANCE::TimeOut</a> expires. </li></ul></div></div><p><a class="anchor" name="g1a3ce25625792c74e5792b8fa86a489c"></a><!-- doxytag: member="Packet.h::NPF_ReadRegistry" ref="g1a3ce25625792c74e5792b8fa86a489c" args="(IN PWSTR *MacDriverName, IN PWSTR *PacketDriverName, IN PUNICODE_STRING RegistryPath)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">NTSTATUS NPF_ReadRegistry </td> <td>(</td> <td class="paramtype">IN PWSTR * </td> <td class="paramname"> <em>MacDriverName</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">IN PWSTR * </td> <td class="paramname"> <em>PacketDriverName</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">IN PUNICODE_STRING </td> <td class="paramname"> <em>RegistryPath</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table></div><div class="memdoc"><p>Reads the registry keys associated woth NPF if the driver is manually installed via the control panel. <p>Normally not used in recent versions of NPF. </div></div><p><a class="anchor" name="ge7863db01a628ed11324c49953195855"></a><!-- doxytag: member="Packet.h::NPF_ReceiveComplete" ref="ge7863db01a628ed11324c49953195855" args="(IN NDIS_HANDLE ProtocolBindingContext)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">VOID NPF_ReceiveComplete </td> <td>(</td> <td class="paramtype">IN NDIS_HANDLE </td> <td class="paramname"> <em>ProtocolBindingContext</em> </td> <td> ) </td> <td width="100%"></td> </tr> </table></div><div class="memdoc"><p>Callback function that signals the end of a packet reception. <p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>ProtocolBindingContext</em> </td><td>Context of the function. Contains a pointer to the OPEN_INSTANCE structure associated with the current instance.</td></tr> </table></dl>does nothing in NPF </div></div><p><a class="anchor" name="g4ff37c0fd3273f829a1f84b9ab40755b"></a><!-- doxytag: member="Packet.h::NPF_RequestComplete" ref="g4ff37c0fd3273f829a1f84b9ab40755b" args="(IN NDIS_HANDLE ProtocolBindingContext, IN PNDIS_REQUEST pRequest, IN NDIS_STATUS Status)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">VOID NPF_RequestComplete </td> <td>(</td> <td class="paramtype">IN NDIS_HANDLE </td> <td class="paramname"> <em>ProtocolBindingContext</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">IN PNDIS_REQUEST </td> <td class="paramname"> <em>pRequest</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">IN NDIS_STATUS </td> <td class="paramname"> <em>Status</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table></div><div class="memdoc"><p>Ends an OID request. <p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>ProtocolBindingContext</em> </td><td>Context of the function. Contains a pointer to the OPEN_INSTANCE structure associated with the current instance. </td></tr> <tr><td valign="top"></td><td valign="top"><em>pRequest</em> </td><td>Pointer to the completed OID request. </td></tr> <tr><td valign="top"></td><td valign="top"><em>Status</em> </td><td>Status of the operation.</td></tr> </table></dl>Callback function associated with the NdisRequest() NDIS function. It is invoked by NDIS when the NIC driver has finished an OID request operation that was previously started by <a class="el" href="group__NPF__code.html#gd8b208720b6e5149dabcd7fb058b16f7">NPF_IoControl()</a>. </div></div><p><a class="anchor" name="g4e7934d9adb1826ed5e9112b9182f74a"></a><!-- doxytag: member="Packet.h::NPF_ResetComplete" ref="g4e7934d9adb1826ed5e9112b9182f74a" args="(IN NDIS_HANDLE ProtocolBindingContext, IN NDIS_STATUS Status)" --><div class="memitem"><div class="memproto"> <table class="memname"> <tr> <td class="memname">VOID NPF_ResetComplete </td> <td>(</td> <td class="paramtype">IN NDIS_HANDLE </td> <td class="paramname"> <em>ProtocolBindingContext</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">IN NDIS_STATUS </td> <td class="paramname"> <em>Status</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table></div><div class="memdoc">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -