📄 packet_8h-source.html
字号:
<a name="l00418"></a><a class="code" href="struct__OPEN__INSTANCE.html#1ce5ea4c97c82145e50d4b5157889a0e">00418</a> ULONG <a class="code" href="struct__OPEN__INSTANCE.html#1ce5ea4c97c82145e50d4b5157889a0e">Size</a>; <a name="l00419"></a><a class="code" href="struct__OPEN__INSTANCE.html#7157ac074af79faeddb2feef7a891af7">00419</a> ULONG <a class="code" href="struct__OPEN__INSTANCE.html#7157ac074af79faeddb2feef7a891af7">AdapterHandleUsageCounter</a>;<a name="l00420"></a><a class="code" href="struct__OPEN__INSTANCE.html#dbc32cf0b83107c2ad2785b8c71a946b">00420</a> NDIS_SPIN_LOCK <a class="code" href="struct__OPEN__INSTANCE.html#dbc32cf0b83107c2ad2785b8c71a946b">AdapterHandleLock</a>;<a name="l00421"></a><a class="code" href="struct__OPEN__INSTANCE.html#a8dd1c538f9932a866ac342d50277929">00421</a> ULONG <a class="code" href="struct__OPEN__INSTANCE.html#a8dd1c538f9932a866ac342d50277929">AdapterBindingStatus</a>; <a name="l00422"></a>00422 <a name="l00423"></a><a class="code" href="struct__OPEN__INSTANCE.html#58faf70e2b245f7d3f2b1a90257e823e">00423</a> NDIS_EVENT <a class="code" href="struct__OPEN__INSTANCE.html#58faf70e2b245f7d3f2b1a90257e823e">NdisOpenCloseCompleteEvent</a>;<a name="l00424"></a><a class="code" href="struct__OPEN__INSTANCE.html#e16d8f96321924cea79edfba9a2aed9f">00424</a> NDIS_EVENT <a class="code" href="struct__OPEN__INSTANCE.html#e16d8f96321924cea79edfba9a2aed9f">NdisWriteCompleteEvent</a>; <a name="l00425"></a><a class="code" href="struct__OPEN__INSTANCE.html#e3c547ec9f715618b461b221fa2e3f09">00425</a> NTSTATUS <a class="code" href="struct__OPEN__INSTANCE.html#e3c547ec9f715618b461b221fa2e3f09">OpenCloseStatus</a>;<a name="l00426"></a><a class="code" href="struct__OPEN__INSTANCE.html#3134a9bd6b67acf8eb8f5fd7a36228d7">00426</a> ULONG <a class="code" href="struct__OPEN__INSTANCE.html#3134a9bd6b67acf8eb8f5fd7a36228d7">TransmitPendingPackets</a>; <a name="l00427"></a>00427 }<a name="l00428"></a>00428 <a class="code" href="struct__OPEN__INSTANCE.html">OPEN_INSTANCE</a>, *<a class="code" href="struct__OPEN__INSTANCE.html">POPEN_INSTANCE</a>;<a name="l00429"></a>00429 <a name="l00430"></a><a class="code" href="group__NPF__include.html#ga80226df1c5ee18b01580d23ed4f31cb">00430</a> <span class="keyword">enum</span> <a class="code" href="group__NPF__include.html#ga80226df1c5ee18b01580d23ed4f31cb">ADAPTER_BINDING_STATUS</a><a name="l00431"></a>00431 {<a name="l00432"></a>00432 <a class="code" href="group__NPF__include.html#gga80226df1c5ee18b01580d23ed4f31cb6e4cdf9f09abf447cffdfd5058357822">ADAPTER_UNBOUND</a>,<a name="l00433"></a>00433 <a class="code" href="group__NPF__include.html#gga80226df1c5ee18b01580d23ed4f31cb3e0c0f314d2e9dc41c205ab44bf087bc">ADAPTER_BOUND</a>,<a name="l00434"></a>00434 <a class="code" href="group__NPF__include.html#gga80226df1c5ee18b01580d23ed4f31cbdc92e852ef35fac0f033487a3be66a93">ADAPTER_UNBINDING</a>,<a name="l00435"></a>00435 };<a name="l00436"></a>00436 <a name="l00444"></a><a class="code" href="structPacketHeader.html">00444</a> <span class="keyword">struct </span><a class="code" href="structPacketHeader.html">PacketHeader</a><a name="l00445"></a>00445 {<a name="l00446"></a><a class="code" href="structPacketHeader.html#fbd4efa90a98223b9ebe18574c057b47">00446</a> ULONG <a class="code" href="structPacketHeader.html#fbd4efa90a98223b9ebe18574c057b47">SN</a>; <a name="l00447"></a><a class="code" href="structPacketHeader.html#e2f3ed1162db1cfdbd9abe8f203426ad">00447</a> <span class="keyword">struct </span>bpf_hdr header; <a name="l00448"></a>00448 };<a name="l00449"></a>00449 <a name="l00450"></a>00450 <span class="keyword">extern</span> ULONG <a class="code" href="group__NPF__include.html#gc8b70ca3f1feebb1ba40c85e3f852eb7">NCpu</a>;<a name="l00451"></a>00451 <a name="l00452"></a>00452 <a name="l00453"></a><a class="code" href="group__NPF__include.html#g652e6173ee1441712652d74a5533e042">00453</a> <span class="preprocessor">#define TRANSMIT_PACKETS 256 </span><a name="l00454"></a>00454 <span class="preprocessor"></span><a name="l00455"></a>00455 <span class="preprocessor"></span><a name="l00456"></a>00456 <span class="preprocessor"></span><a name="l00458"></a><a class="code" href="group__NPF__include.html#gcabf25322566f3bcd1e564e4939f5821">00458</a> <span class="preprocessor">#define EXIT_SUCCESS(quantity) Irp->IoStatus.Information=quantity;\</span><a name="l00459"></a>00459 <span class="preprocessor"> Irp->IoStatus.Status = STATUS_SUCCESS;\</span><a name="l00460"></a>00460 <span class="preprocessor"> IoCompleteRequest(Irp, IO_NO_INCREMENT);\</span><a name="l00461"></a>00461 <span class="preprocessor"> return STATUS_SUCCESS;\</span><a name="l00462"></a>00462 <span class="preprocessor"></span><a name="l00464"></a><a class="code" href="group__NPF__include.html#gd6d1f5522a147ddeb7d9b11916acd50a">00464</a> <span class="preprocessor">#define EXIT_FAILURE(quantity) Irp->IoStatus.Information=quantity;\</span><a name="l00465"></a>00465 <span class="preprocessor"> Irp->IoStatus.Status = STATUS_UNSUCCESSFUL;\</span><a name="l00466"></a>00466 <span class="preprocessor"> IoCompleteRequest(Irp, IO_NO_INCREMENT);\</span><a name="l00467"></a>00467 <span class="preprocessor"> return STATUS_UNSUCCESSFUL;\</span><a name="l00468"></a>00468 <span class="preprocessor"></span><a name="l00469"></a>00469 <span class="preprocessor"></span><a name="l00474"></a>00474 <span class="comment">/***************************/</span><a name="l00475"></a>00475 <span class="comment">/* Prototypes */</span><a name="l00476"></a>00476 <span class="comment">/***************************/</span><a name="l00477"></a>00477 <a name="l00494"></a>00494 NTSTATUS<a name="l00495"></a>00495 <a class="code" href="group__NPF__code.html#g6502d781bd20234a06710b92d540baba">DriverEntry</a>(<a name="l00496"></a>00496 IN PDRIVER_OBJECT DriverObject,<a name="l00497"></a>00497 IN PUNICODE_STRING RegistryPath<a name="l00498"></a>00498 );<a name="l00499"></a>00499 <a name="l00509"></a>00509 PWCHAR <a class="code" href="group__NPF__code.html#gfc395636686df00f554efbd2010f73cb">getAdaptersList</a>(VOID);<a name="l00510"></a>00510 <a name="l00517"></a>00517 PKEY_VALUE_PARTIAL_INFORMATION <a class="code" href="group__NPF__code.html#gcf0e32b371eb9283e5cf1de0dfb15629">getTcpBindings</a>(VOID);<a name="l00518"></a>00518 <a name="l00530"></a>00530 BOOLEAN <a class="code" href="group__NPF__code.html#g8b4f23818c00c1186aa0bc59b57ff6c6">createDevice</a>(<a name="l00531"></a>00531 IN OUT PDRIVER_OBJECT adriverObjectP,<a name="l00532"></a>00532 IN PUNICODE_STRING amacNameP,<a name="l00533"></a>00533 NDIS_HANDLE aProtoHandle);<a name="l00534"></a>00534 <a name="l00546"></a>00546 NTSTATUS<a name="l00547"></a>00547 <a class="code" href="group__NPF__code.html#g82e557625e52fe4395bbe2e494fe8c4a">NPF_Open</a>(<a name="l00548"></a>00548 IN PDEVICE_OBJECT DeviceObject,<a name="l00549"></a>00549 IN PIRP Irp<a name="l00550"></a>00550 );<a name="l00551"></a>00551 <a name="l00561"></a>00561 VOID<a name="l00562"></a>00562 <a class="code" href="group__NPF__code.html#g155ae51be29c6d36f8109781b8f6e7b2">NPF_OpenAdapterComplete</a>(<a name="l00563"></a>00563 IN NDIS_HANDLE ProtocolBindingContext,<a name="l00564"></a>00564 IN NDIS_STATUS Status,<a name="l00565"></a>00565 IN NDIS_STATUS OpenErrorStatus<a name="l00566"></a>00566 );<a name="l00567"></a>00567 <a name="l00578"></a>00578 NTSTATUS<a name="l00579"></a>00579 <a class="code" href="group__NPF__code.html#gfae94a0e7fda8de180cff6e596cc2803">NPF_Cleanup</a>(<a name="l00580"></a>00580 IN PDEVICE_OBJECT DeviceObject,<a name="l00581"></a>00581 IN PIRP Irp<a name="l00582"></a>00582 );<a name="l00583"></a>00583 <a name="l00584"></a>00584 NTSTATUS<a name="l00585"></a>00585 <a class="code" href="group__NPF__code.html#gf8b70be389645c912cf09f1e9ea4b975">NPF_Close</a>(<a name="l00586"></a>00586 IN PDEVICE_OBJECT DeviceObject,<a name="l00587"></a>00587 IN PIRP Irp<a name="l00588"></a>00588 );<a name="l00589"></a>00589 <a name="l00590"></a>00590 <a name="l00591"></a>00591 <a name="l00600"></a>00600 VOID<a name="l00601"></a>00601 <a class="code" href="group__NPF__code.html#g300118a9a6cc28c2c880f6bb39d86b53">NPF_CloseAdapterComplete</a>(<a name="l00602"></a>00602 IN NDIS_HANDLE ProtocolBindingContext,<a name="l00603"></a>00603 IN NDIS_STATUS Status<a name="l00604"></a>00604 );<a name="l00605"></a>00605 <a name="l00628"></a>00628 NDIS_STATUS<a name="l00629"></a>00629 <a class="code" href="group__NPF__code.html#g92f84ced372baf09f1c00a6b252a0564">NPF_tap</a>(<a name="l00630"></a>00630 IN NDIS_HANDLE ProtocolBindingContext,<a name="l00631"></a>00631 IN NDIS_HANDLE MacReceiveContext,<a name="l00632"></a>00632 IN PVOID HeaderBuffer,<a name="l00633"></a>00633 IN UINT HeaderBufferSize,<a name="l00634"></a>00634 IN PVOID LookAheadBuffer,<a name="l00635"></a>00635 IN UINT LookaheadBufferSize,<a name="l00636"></a>00636 IN UINT PacketSize<a name="l00637"></a>00637 );<a name="l00638"></a>00638 <a name="l00649"></a>00649 VOID<a name="l00650"></a>00650 <a class="code" href="group__NPF__code.html#g0c34f931d6718be202c7c62406f279fd">NPF_TransferDataComplete</a>(<a name="l00651"></a>00651 IN NDIS_HANDLE ProtocolBindingContext,<a name="l00652"></a>00652 IN PNDIS_PACKET Packet,<a name="l00653"></a>00653 IN NDIS_STATUS Status,<a name="l00654"></a>00654 IN UINT BytesTransferred<a name="l00655"></a>00655 );<a name="l00656"></a>00656 <a name="l00663"></a>00663 VOID<a name="l00664"></a>00664 <a class="code" href="group__NPF__code.html#ge7863db01a628ed11324c49953195855">NPF_ReceiveComplete</a>(IN NDIS_HANDLE ProtocolBindingContext);<a name="l00665"></a>00665 <a name="l00689"></a>00689 NTSTATUS<a name="l00690"></a>00690 <a class="code" href="group__NPF__code.html#gd8b208720b6e5149dabcd7fb058b16f7">NPF_IoControl</a>(<a name="l00691"></a>00691 IN PDEVICE_OBJECT DeviceObject,<a name="l00692"></a>00692 IN PIRP Irp<a name="l00693"></a>00693 );<a name="l00694"></a>00694 <a name="l00695"></a>00695 VOID<a name="l00696"></a>00696 <a name="l00706"></a>00706 <a class="code" href="group__NPF__code.html#g4ff37c0fd3273f829a1f84b9ab40755b">NPF_RequestComplete</a>(<a name="l00707"></a>00707 IN NDIS_HANDLE ProtocolBindingContext,<a name="l00708"></a>00708 IN PNDIS_REQUEST pRequest,<a name="l00709"></a>00709 IN NDIS_STATUS Status<a name="l00710"></a>00710 );<a name="l00711"></a>00711 <a name="l00724"></a>00724 NTSTATUS<a name="l00725"></a>00725 <a class="code" href="group__NPF__code.html#g595338435296a4d1e15363ebfcb3a38c">NPF_Write</a>(<a name="l00726"></a>00726 IN PDEVICE_OBJECT DeviceObject,<a name="l00727"></a>00727 IN PIRP Irp<a name="l00728"></a>00728 );<a name="l00729"></a>00729 <a name="l00730"></a>00730 <a name="l00750"></a>00750 INT <a class="code" href="group__NPF__code.html#g9a97dd25ae757da4bfed3723a4eb4bce">NPF_BufferedWrite</a>(IN PIRP Irp,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -