亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? packet.h

?? Windows XP下的抓包程序?qū)崿F(xiàn)
?? H
?? 第 1 頁 / 共 3 頁
字號(hào):
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp
    );

VOID

/*!
  \brief Ends an OID request.
  \param ProtocolBindingContext Context of the function. Contains a pointer to the OPEN_INSTANCE structure associated with the current instance.
  \param pRequest Pointer to the completed OID request. 
  \param Status Status of the operation.

  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 NPF_IoControl().
*/
NPF_RequestComplete(
    IN NDIS_HANDLE   ProtocolBindingContext,
    IN PNDIS_REQUEST pRequest,
    IN NDIS_STATUS   Status
    );

/*!
  \brief Writes a raw packet to the network.
  \param DeviceObject Pointer to the device object on which the user wrote the packet.
  \param Irp Pointer to the IRP containing the user request.
  \return The status of the operation. See ntstatus.h in the DDK.

  This function is called by the OS in consequence of user WriteFile() call, with the data of the packet that must
  be sent on the net. The data is contained in the buffer associated with Irp, NPF_Write takes it and
  delivers it to the NIC driver via the NdisSend() function. The Nwrites field of the OPEN_INSTANCE structure 
  associated with Irp indicates the number of copies of the packet that will be sent: more than one copy of the
  packet can be sent for performance reasons.
*/
NTSTATUS
NPF_Write(
			IN PDEVICE_OBJECT DeviceObject,
			IN PIRP Irp
			);


/*!
  \brief Writes a buffer of raw packets to the network.
  \param Irp Pointer to the IRP containing the user request.
  \param UserBuff Pointer to the buffer containing the packets to send.
  \param UserBuffSize Size of the buffer with the packets.
  \param sync If set to TRUE, the packets are transmitted respecting their timestamps.
  \return The amount of bytes actually sent. If the return value is smaller than the Size parameter, an
          error occurred during the send. The error can be caused by an adapter problem or by an
		  inconsistent/bogus user buffer.

  This function is called by the OS in consequence of a BIOCSENDPACKETSNOSYNC or a BIOCSENDPACKETSSYNC IOCTL.
  The buffer received as input parameter contains an arbitrary number of packets, each of which preceded by a
  sf_pkthdr structure. NPF_BufferedWrite() scans the buffer and sends every packet via the NdisSend() function.
  When Sync is set to TRUE, the packets are synchronized with the KeQueryPerformanceCounter() function.
  This requires a remarkable amount of CPU, but allows to respect the timestamps associated with packets with a precision 
  of some microseconds (depending on the precision of the performance counter of the machine).
  If Sync is false, the timestamps are ignored and the packets are sent as fat as possible.
*/

INT NPF_BufferedWrite(IN PIRP Irp, 
						IN PCHAR UserBuff, 
						IN ULONG UserBuffSize,
						BOOLEAN sync);

/*!
  \brief Waits the completion of all the sends performed by NPF_BufferedWrite.

  \param Open Pointer to open context structure

  Used by NPF_BufferedWrite to wait the completion of all the sends before returning the control to the user.
*/
VOID NPF_WaitEndOfBufferedWrite(POPEN_INSTANCE Open);

/*!
  \brief Ends a send operation.
  \param ProtocolBindingContext Context of the function. Contains a pointer to the OPEN_INSTANCE structure associated with the current instance.
  \param pPacket Pointer to the NDIS PACKET structure used by NPF_Write() to send the packet. 
  \param Status Status of the operation.

  Callback function associated with the NdisSend() NDIS function. It is invoked by NDIS when the NIC 
  driver has finished an OID request operation that was previously started by NPF_Write().
*/
VOID
NPF_SendComplete(
    IN NDIS_HANDLE   ProtocolBindingContext,
    IN PNDIS_PACKET  pPacket,
    IN NDIS_STATUS   Status
    );

/*!
  \brief Ends a reset of the adapter.
  \param ProtocolBindingContext Context of the function. Contains a pointer to the OPEN_INSTANCE structure associated with the current instance.
  \param Status Status of the operation.

  Callback function associated with the NdisReset() NDIS function. It is invoked by NDIS when the NIC 
  driver has finished an OID request operation that was previously started by NPF_IoControl(), in an IOCTL_PROTOCOL_RESET 
  command.
*/
VOID
NPF_ResetComplete(
    IN NDIS_HANDLE  ProtocolBindingContext,
    IN NDIS_STATUS  Status
    );

/*!
  \brief Callback for NDIS StatusHandler. Not used by NPF
*/
VOID
NPF_Status(
    IN NDIS_HANDLE   ProtocolBindingContext,
    IN NDIS_STATUS   Status,
    IN PVOID         StatusBuffer,
    IN UINT          StatusBufferSize
    );


/*!
  \brief Callback for NDIS StatusCompleteHandler. Not used by NPF
*/
VOID
NPF_StatusComplete(IN NDIS_HANDLE  ProtocolBindingContext);

/*!
  \brief Function called by the OS when NPF is unloaded.
  \param DriverObject The driver object of NPF created by the system.

  This is the last function executed when the driver is unloaded from the system. It frees global resources,
  delete the devices and deregisters the protocol. The driver can be unloaded by the user stopping the NPF
  service (from control panel or with a console 'net stop npf').
*/
VOID
NPF_Unload(IN PDRIVER_OBJECT DriverObject);


/*!
  \brief Function that serves the user's reads.
  \param DeviceObject Pointer to the device used by the user.
  \param Irp Pointer to the IRP containing the user request.
  \return The status of the operation. See ntstatus.h in the DDK.

  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. 
  - If the instance is in capture mode and the buffer contains more than OPEN_INSTANCE::MinToCopy 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.
  - 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 OPEN_INSTANCE::TimeOut field.
  - If the instance is in statistical mode or in dump mode, the application's request is blocked until the 
  timeout kept in OPEN_INSTANCE::TimeOut expires.
*/
NTSTATUS
NPF_Read(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp
    );

/*!
  \brief Reads the registry keys associated woth NPF if the driver is manually installed via the control panel.

  Normally not used in recent versions of NPF.
*/
NTSTATUS
NPF_ReadRegistry(
    IN  PWSTR              *MacDriverName,
    IN  PWSTR              *PacketDriverName,
    IN  PUNICODE_STRING     RegistryPath
    );

/*!
  \brief Function used by NPF_ReadRegistry() to quesry the registry keys associated woth NPF if the driver 
  is manually installed via the control panel.

  Normally not used in recent versions of NPF.
*/
NTSTATUS
NPF_QueryRegistryRoutine(
    IN PWSTR     ValueName,
    IN ULONG     ValueType,
    IN PVOID     ValueData,
    IN ULONG     ValueLength,
    IN PVOID     Context,
    IN PVOID     EntryContext
    );

/*!
  \brief Callback for NDIS BindAdapterHandler. Not used by NPF.
  
  Function called by NDIS when a new adapter is installed on the machine With Plug and Play.
*/
VOID NPF_BindAdapter(
    OUT PNDIS_STATUS            Status,
    IN  NDIS_HANDLE             BindContext,
    IN  PNDIS_STRING            DeviceName,
    IN  PVOID                   SystemSpecific1,
    IN  PVOID                   SystemSpecific2
    );

/*!
  \brief Callback for NDIS UnbindAdapterHandler.
  \param Status out variable filled by NPF_UnbindAdapter with the status of the unbind operation.
  \param ProtocolBindingContext Context of the function. Contains a pointer to the OPEN_INSTANCE structure associated with current instance.
  \param UnbindContext Specifies a handle, supplied by NDIS, that NPF can use to complete the opration.
  
  Function called by NDIS when a new adapter is removed from the machine without shutting it down.
  NPF_UnbindAdapter closes the adapter calling NdisCloseAdapter() and frees the memory and the structures
  associated with it. It also releases the waiting user-level app and closes the dump thread if the instance
  is in dump mode.
*/
VOID
NPF_UnbindAdapter(
    OUT PNDIS_STATUS        Status,
    IN  NDIS_HANDLE         ProtocolBindingContext,
    IN  NDIS_HANDLE         UnbindContext
    );


/*!
  \brief Creates the file that will receive the packets when the driver is in dump mode.
  \param Open The NPF instance that opens the file.
  \param fileName Pointer to a UNICODE string containing the name of the file.
  \param append Boolean value that specifies if the data must be appended to the file.
  \return The status of the operation. See ntstatus.h in the DDK.
*/
NTSTATUS NPF_OpenDumpFile(POPEN_INSTANCE Open , PUNICODE_STRING fileName, BOOLEAN append);

/*!
  \brief Starts dump to file.
  \param Open The NPF instance that opens the file.
  \return The status of the operation. See ntstatus.h in the DDK.

  This function performs two operations. First, it writes the libpcap header at the beginning of the file.
  Second, it starts the thread that asynchronously dumps the network data to the file.
*/
NTSTATUS NPF_StartDump(POPEN_INSTANCE Open);

/*!
  \brief The dump thread.
  \param Open The NPF instance that creates the thread.

  This function moves the content of the NPF kernel buffer to file. It runs in the user context, so at lower 
  priority than the TAP.
*/
VOID NPF_DumpThread(PVOID Open);

/*!
  \brief Saves the content of the packet buffer to the file associated with current instance.
  \param Open The NPF instance that creates the thread.

  Used by NPF_DumpThread() and NPF_CloseDumpFile().
*/
NTSTATUS NPF_SaveCurrentBuffer(POPEN_INSTANCE Open);

/*!
  \brief Writes a block of packets on the dump file.
  \param FileObject The file object that will receive the packets.
  \param Offset The offset in the file where the packets will be put.
  \param Length The amount of bytes to write.
  \param Mdl MDL mapping the memory buffer that will be written to disk.
  \param IoStatusBlock Used by the function to return the status of the operation.
  \return The status of the operation. See ntstatus.h in the DDK.

  NPF_WriteDumpFile addresses directly the file system, creating a custom IRP and using it to send a portion
  of the NPF circular buffer to disk. This function is used by NPF_DumpThread().
*/
VOID NPF_WriteDumpFile(PFILE_OBJECT FileObject,
			                    PLARGE_INTEGER Offset,
								ULONG Length,
								PMDL Mdl,
								PIO_STATUS_BLOCK IoStatusBlock);



/*!
  \brief Closes the dump file associated with an instance of the driver.
  \param Open The NPF instance that closes the file.
  \return The status of the operation. See ntstatus.h in the DDK.
*/
NTSTATUS NPF_CloseDumpFile(POPEN_INSTANCE Open);

VOID
NPF_CloseOpenInstance(POPEN_INSTANCE pOpen);

BOOLEAN
NPF_StartUsingBinding(
    IN POPEN_INSTANCE pOpen);

VOID
NPF_StopUsingBinding(
    IN POPEN_INSTANCE pOpen);

VOID
NPF_CloseBinding(
    IN POPEN_INSTANCE pOpen);

NTSTATUS
NPF_GetDeviceMTU(
			 IN POPEN_INSTANCE pOpen,
			 IN PIRP	pIrp,
			 OUT PUINT  pMtu);

/*!
  \brief Returns the amount of bytes present in the packet buffer.
  \param Open The NPF instance that closes the file.
*/
UINT GetBuffOccupation(POPEN_INSTANCE Open);

/*!
  \brief Called by NDIS to notify us of a PNP event. The most significant one for us is power state change.

  \param ProtocolBindingContext Pointer to open context structure. This is NULL for global reconfig 
  events.
  \param pNetPnPEvent Pointer to the PnP event

  If there is a power state change, the driver is forced to resynchronize the global timer.
  This hopefully avoids the synchronization issues caused by hibernation or standby.
  This function is excluded from the NT4 driver, where PnP is not supported
*/
#ifdef NDIS50
NDIS_STATUS NPF_PowerChange(IN NDIS_HANDLE ProtocolBindingContext, IN PNET_PNP_EVENT pNetPnPEvent);
#endif

//  
//	Old registry based WinPcap names
//
///*!
//  \brief Helper function to query a value from the global WinPcap registry key
//*/
//VOID NPF_QueryWinpcapRegistryString(PWSTR SubKeyName,
//								 WCHAR *Value,
//                               UINT ValueLen, 
//								 WCHAR *DefaultValue);
//


/**
 *  @}
 */

/**
 *  @}
 */

#endif  /*main ifndef/define*/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99re亚洲国产精品| 国产精品久久久久久妇女6080 | 97久久人人超碰| 国产伦精一区二区三区| 狠狠色丁香婷婷综合久久片| 蜜芽一区二区三区| 免费国产亚洲视频| 蜜臀精品一区二区三区在线观看 | 欧美国产禁国产网站cc| 国产日韩欧美综合一区| 久久久欧美精品sm网站| 久久久久久久久久美女| 国产亚洲美州欧州综合国| 久久精品网站免费观看| 国产精品美日韩| 亚洲女同女同女同女同女同69| 亚洲色图19p| 亚洲永久免费av| 天堂精品中文字幕在线| 免费一级欧美片在线观看| 久久99热99| 成人精品视频一区二区三区| 91亚洲男人天堂| 91超碰这里只有精品国产| 欧美本精品男人aⅴ天堂| 久久久蜜桃精品| 中文字幕色av一区二区三区| 亚洲在线观看免费| 麻豆精品国产传媒mv男同| 国产精品主播直播| 91麻豆精品在线观看| 欧美伦理电影网| 欧美精品一区二区久久久| 中文字幕日韩一区二区| 亚洲国产日韩在线一区模特| 麻豆成人久久精品二区三区红 | 91国偷自产一区二区开放时间 | 国产一区二区电影| 99久久国产综合精品麻豆| 欧美日韩国产精选| 国产午夜精品理论片a级大结局| 国产精品久久久久影院亚瑟| 亚洲电影激情视频网站| 欧美久久久久久蜜桃| 亚洲综合在线视频| 亚洲成年人影院| 天天色综合成人网| 国产伦精品一区二区三区免费迷 | 日韩欧美国产午夜精品| 国产精品丝袜一区| 三级欧美韩日大片在线看| 国产一区二区三区日韩| 色狠狠一区二区三区香蕉| 精品久久一区二区| 亚洲综合丝袜美腿| 韩国视频一区二区| 在线视频综合导航| 国产网站一区二区| 日本 国产 欧美色综合| 色悠久久久久综合欧美99| 欧美成人一区二区三区片免费| 亚洲欧洲综合另类在线| 国内精品免费在线观看| 欧美日韩一区二区电影| 国产精品久久综合| 另类小说视频一区二区| 欧美中文字幕一区二区三区| 国产欧美视频在线观看| 毛片av一区二区| 欧美日韩国产高清一区二区三区 | 亚洲在线中文字幕| 成人av在线电影| 久久久一区二区三区捆绑**| 日韩电影免费在线看| 欧美专区亚洲专区| 亚洲视频1区2区| 成人app在线观看| 欧美精品一区在线观看| 蜜桃av噜噜一区| 在线播放中文字幕一区| 夜夜嗨av一区二区三区四季av| 成人免费毛片app| 久久久久久久久99精品| 老司机精品视频导航| 欧美日韩免费一区二区三区视频| 自拍视频在线观看一区二区| 国产精品自拍av| 久久影院视频免费| 久久99国产精品免费网站| 717成人午夜免费福利电影| 亚洲午夜久久久久久久久电影网| 91麻豆国产自产在线观看| 亚洲欧洲美洲综合色网| 国产69精品一区二区亚洲孕妇 | 男女男精品网站| 欧美一区二区三区四区高清| 亚洲国产综合视频在线观看| 91小视频免费观看| 亚洲欧美二区三区| 91传媒视频在线播放| 亚洲另类中文字| 在线精品视频免费播放| 亚洲韩国精品一区| 欧美剧情片在线观看| 日日夜夜精品视频免费| 5月丁香婷婷综合| 麻豆精品国产91久久久久久| 精品日韩一区二区三区免费视频| 精品一区二区三区免费视频| 精品乱码亚洲一区二区不卡| 韩国v欧美v日本v亚洲v| 国产日韩欧美精品一区| 成人av资源在线| 亚洲视频网在线直播| 欧日韩精品视频| 亚洲成在人线免费| 日韩欧美另类在线| 国产精品自拍三区| ...中文天堂在线一区| 91一区二区三区在线观看| 亚洲制服丝袜在线| 日韩欧美精品在线视频| 国产精品77777| 中文字幕一区二区5566日韩| 欧美综合欧美视频| 免费看日韩精品| 久久精品一区二区三区av | 国产亚洲人成网站| 99久久久精品免费观看国产蜜| 亚洲天堂av老司机| 欧美电影在线免费观看| 久久99精品久久久| 国产精品不卡一区二区三区| 欧美日韩在线亚洲一区蜜芽| 麻豆91在线观看| 中文字幕一区二| 欧美一二三四区在线| 成人免费视频一区| 亚洲女同一区二区| 日韩欧美资源站| 99久久99久久精品免费观看| 亚洲va天堂va国产va久| 久久久久久毛片| 91国产福利在线| 国产一区二区三区观看| 一区二区三区欧美亚洲| 日韩精品专区在线影院重磅| 99re成人精品视频| 捆绑调教美女网站视频一区| 一区在线观看视频| 欧美成va人片在线观看| 97久久超碰国产精品电影| 日本不卡视频一二三区| **欧美大码日韩| 日韩免费看的电影| 欧美综合在线视频| 粉嫩蜜臀av国产精品网站| 日韩高清在线一区| 亚洲日本青草视频在线怡红院| 精品少妇一区二区三区免费观看 | 亚洲视频在线一区观看| 欧美成人高清电影在线| 欧美性感一区二区三区| 国产乱人伦精品一区二区在线观看 | 97精品国产97久久久久久久久久久久| 首页国产丝袜综合| 中文字幕在线观看一区二区| 91麻豆精品国产91久久久久久 | 国产91精品欧美| 免费成人结看片| 夜夜嗨av一区二区三区中文字幕| 久久美女高清视频| 日韩一区二区麻豆国产| 色妹子一区二区| 国产91精品免费| 国产综合成人久久大片91| 五月天欧美精品| 一区二区成人在线| 亚洲视频在线一区二区| 国产午夜久久久久| 精品理论电影在线观看| 91精品黄色片免费大全| 色吧成人激情小说| 成人国产电影网| 国产精品911| 国产伦精品一区二区三区免费迷| 奇米精品一区二区三区四区| 午夜日韩在线观看| 亚洲一区二区三区四区在线免费观看| 国产精品高潮呻吟| 久久精品综合网| 久久久欧美精品sm网站| 精品国产乱码久久久久久影片| 91精品国产免费| 69堂成人精品免费视频| 在线观看国产一区二区| 日本精品免费观看高清观看| 色视频欧美一区二区三区| 色综合久久综合网欧美综合网| 99久久国产综合精品女不卡|