Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Các hàm trong Icmpapi.h như thế nào?

  1. #1
    Ngày gia nhập
    07 2006
    Nơi ở
    Hà nội
    Bài viết
    204

    Mặc định Các hàm trong Icmpapi.h như thế nào?

    Em định dùng 1 số hàm api về icmp, nhưng trong include của vc++ lại ko có file icmpapi.h, ai có thì post lên cho em với

  2. #2
    Ngày gia nhập
    09 2006
    Bài viết
    711

    Code:
    /*++
    
    Copyright (c) 1991-1999  Microsoft Corporation
    
    Module Name:
    
        icmpapi.h
    
    Abstract:
    
        Declarations for the Win32 ICMP Echo request API.
    
    Author:
    
        Portable Systems Group 30-December-1993
    
    Revision History:
    
    
    Notes:
    
    --*/
    
    #ifndef _ICMP_INCLUDED_
    #define _ICMP_INCLUDED_
    
    #if _MSC_VER > 1000
    #pragma once
    #endif
    
    #ifdef __cplusplus
    extern "C" {
    #endif
    
    //
    // Exported Routines.
    //
    
    //++
    //
    // Routine Name:
    //
    //     IcmpCreateFile
    //
    // Routine Description:
    //
    //     Opens a handle on which ICMP Echo Requests can be issued.
    //
    // Arguments:
    //
    //     None.
    //
    // Return Value:
    //
    //     An open file handle or INVALID_HANDLE_VALUE. Extended error information
    //     is available by calling GetLastError().
    //
    //--
    
    HANDLE
    WINAPI
    IcmpCreateFile(
        VOID
        );
    
    //++
    //
    // Routine Name:
    //
    //     Icmp6CreateFile
    //
    // Routine Description:
    //
    //     Opens a handle on which ICMPv6 Echo Requests can be issued.
    //
    // Arguments:
    //
    //     None.
    //
    // Return Value:
    //
    //     An open file handle or INVALID_HANDLE_VALUE. Extended error information
    //     is available by calling GetLastError().
    //
    //--
    
    HANDLE
    WINAPI
    Icmp6CreateFile(
        VOID
        );
    
    
    //++
    //
    // Routine Name:
    //
    //     IcmpCloseHandle
    //
    // Routine Description:
    //
    //     Closes a handle opened by ICMPOpenFile.
    //
    // Arguments:
    //
    //     IcmpHandle  - The handle to close.
    //
    // Return Value:
    //
    //     TRUE if the handle was closed successfully, otherwise FALSE. Extended
    //     error information is available by calling GetLastError().
    //
    //--
    
    BOOL
    WINAPI
    IcmpCloseHandle(
        HANDLE  IcmpHandle
        );
    
    
    
    //++
    //
    // Routine Name:
    //
    //     IcmpSendEcho
    //
    // Routine Description:
    //
    //     Sends an ICMP Echo request and returns any replies. The
    //     call returns when the timeout has expired or the reply buffer
    //     is filled.
    //
    // Arguments:
    //
    //     IcmpHandle           - An open handle returned by ICMPCreateFile.
    //
    //     DestinationAddress   - The destination of the echo request.
    //
    //     RequestData          - A buffer containing the data to send in the
    //                            request.
    //
    //     RequestSize          - The number of bytes in the request data buffer.
    //
    //     RequestOptions       - Pointer to the IP header options for the request.
    //                            May be NULL.
    //
    //     ReplyBuffer          - A buffer to hold any replies to the request.
    //                            On return, the buffer will contain an array of
    //                            ICMP_ECHO_REPLY structures followed by the
    //                            options and data for the replies. The buffer
    //                            should be large enough to hold at least one
    //                            ICMP_ECHO_REPLY structure plus
    //                            MAX(RequestSize, 8) bytes of data since an ICMP
    //                            error message contains 8 bytes of data.
    //
    //     ReplySize            - The size in bytes of the reply buffer.
    //
    //     Timeout              - The time in milliseconds to wait for replies.
    //
    // Return Value:
    //
    //     Returns the number of ICMP_ECHO_REPLY structures stored in ReplyBuffer.
    //     The status of each reply is contained in the structure. If the return
    //     value is zero, extended error information is available via
    //     GetLastError().
    //
    //--
    
    DWORD
    WINAPI
    IcmpSendEcho(
        HANDLE                   IcmpHandle,
        IPAddr                   DestinationAddress,
        LPVOID                   RequestData,
        WORD                     RequestSize,
        PIP_OPTION_INFORMATION   RequestOptions,
        LPVOID                   ReplyBuffer,
        DWORD                    ReplySize,
        DWORD                    Timeout
        );
    
    
    //++
    //
    // Routine Description:
    //
    //    Sends an ICMP Echo request and the call returns either immediately
    //    (if Event or ApcRoutine is NonNULL) or returns after the specified
    //    timeout.   The ReplyBuffer contains the ICMP responses, if any.
    //
    // Arguments:
    //
    //    IcmpHandle           - An open handle returned by ICMPCreateFile.
    //
    //    Event                - This is the event to be signalled whenever an IcmpResponse
    //                           comes in.
    //
    //    ApcRoutine           - This routine would be called when the calling thread
    //                           is in an alertable thread and an ICMP reply comes in.
    //
    //    ApcContext           - This optional parameter is given to the ApcRoutine when
    //                           this call succeeds.
    //
    //    DestinationAddress   - The destination of the echo request.
    //
    //    RequestData          - A buffer containing the data to send in the
    //                           request.
    //
    //    RequestSize          - The number of bytes in the request data buffer.
    //
    //    RequestOptions       - Pointer to the IP header options for the request.
    //                           May be NULL.
    //
    //    ReplyBuffer          - A buffer to hold any replies to the request.
    //                           On return, the buffer will contain an array of
    //                           ICMP_ECHO_REPLY structures followed by options
    //                           and data. The buffer must be large enough to
    //                           hold at least one ICMP_ECHO_REPLY structure.
    //                           It should be large enough to also hold
    //                           8 more bytes of data - this is the size of
    //                           an ICMP error message.
    //
    //    ReplySize            - The size in bytes of the reply buffer.
    //
    //    Timeout              - The time in milliseconds to wait for replies.
    //                           This is NOT used if ApcRoutine is not NULL or if Event
    //                           is not NULL.
    //
    // Return Value:
    //
    //    Returns the number of replies received and stored in ReplyBuffer. If
    //    the return value is zero, extended error information is available
    //    via GetLastError().
    //
    // Remarks:
    //
    //    On NT platforms,
    //    If used Asynchronously (either ApcRoutine or Event is specified), then
    //    ReplyBuffer and ReplySize are still needed.  This is where the response
    //    comes in.
    //    ICMP Response data is copied to the ReplyBuffer provided, and the caller of
    //    this function has to parse it asynchronously.  The function IcmpParseReply
    //    is provided for this purpose.
    //
    //    On non-NT platforms,
    //    Event, ApcRoutine and ApcContext are IGNORED.
    //
    //--
    
    
    DWORD
    WINAPI
    IcmpSendEcho2(
        HANDLE                   IcmpHandle,
        HANDLE                   Event,
    #ifdef PIO_APC_ROUTINE_DEFINED
        PIO_APC_ROUTINE          ApcRoutine,
    #else
        FARPROC                  ApcRoutine,
    #endif
        PVOID                    ApcContext,
        IPAddr                   DestinationAddress,
        LPVOID                   RequestData,
        WORD                     RequestSize,
        PIP_OPTION_INFORMATION   RequestOptions,
        LPVOID                   ReplyBuffer,
        DWORD                    ReplySize,
        DWORD                    Timeout
        );
    
    DWORD
    WINAPI
    Icmp6SendEcho2(
        HANDLE                   IcmpHandle,
        HANDLE                   Event,
    #ifdef PIO_APC_ROUTINE_DEFINED
        PIO_APC_ROUTINE          ApcRoutine,
    #else
        FARPROC                  ApcRoutine,
    #endif
        PVOID                    ApcContext,
        struct sockaddr_in6     *SourceAddress,
        struct sockaddr_in6     *DestinationAddress,
        LPVOID                   RequestData,
        WORD                     RequestSize,
        PIP_OPTION_INFORMATION   RequestOptions,
        LPVOID                   ReplyBuffer,
        DWORD                    ReplySize,
        DWORD                    Timeout
        );
    
    
    //++
    //
    // Routine Description:
    //
    //    Parses the reply buffer provided and returns the number of ICMP responses found.
    //
    // Arguments:
    //
    //    ReplyBuffer            - This must be the same buffer that was passed to IcmpSendEcho2
    //                             This is rewritten to hold an array of ICMP_ECHO_REPLY structures.
    //                             (i.e. the type is PICMP_ECHO_REPLY).
    //
    //    ReplySize              - This must be the size of the above buffer.
    //
    // Return Value:
    //    Returns the number of ICMP responses found.  If there is an errors, return value is
    //    zero.  The error can be determined by a call to GetLastError.
    //
    // Remarks:
    //    This function SHOULD NOT BE USED on a reply buffer that was passed to SendIcmpEcho.
    //    SendIcmpEcho actually parses the buffer before returning back to the user.  This function
    //    is meant to be used only with SendIcmpEcho2.
    //--
    
    DWORD
    IcmpParseReplies(
        LPVOID                   ReplyBuffer,
        DWORD                    ReplySize
        );
    
    DWORD
    Icmp6ParseReplies(
        LPVOID                   ReplyBuffer,
        DWORD                    ReplySize
        );
    
    #ifdef __cplusplus
    }
    #endif
    
    #endif // _ICMP_INCLUDED_

  3. #3
    Ngày gia nhập
    07 2006
    Nơi ở
    Hà nội
    Bài viết
    204

    Bạn làm ơn post nốt ipexport.h và up file icmp.lib lên đc. ko
    Mà tại sao tui cài VC++ mà ko có những file này nhỉ

  4. #4
    Ngày gia nhập
    09 2006
    Bài viết
    711

    Ồ, như vậy thì cậu đang dùng VC++ 6 phải không. Nếu vậy thì các file cậu yêu cầu sẽ không có trên máy cậu. Tốt nhất là cậu lên web MS download Platform SDK về. Các file này là của Platform SDK.
    Hoặc cậu install VS 2003 hoặc 2005 đi. Tui đang dùng VS 2005, chủ yếu viết C++/CLI.
    Đã được chỉnh sửa lần cuối bởi TQN : 29-10-2006 lúc 04:22 PM.

Các đề tài tương tự

  1. Làm Chữ chạy trên form C# như thẻ <marquee> trong HTML thế nào?
    Gửi bởi magnet241 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 05-04-2012, 11:55 AM
  2. In thẻ,hóa đơn từ các textbox,combobox,datetimepicker trong form C# như thế nào?
    Gửi bởi snoit trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 04-04-2012, 03:13 PM
  3. Game Tạo Form trong suốt trong C# tựa game Thần Võ như thế nào?
    Gửi bởi tocvang_pro trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 21-09-2011, 04:21 PM
  4. Sử lí như thế nào khi nhập rất chậm trong trình xoạn thảo trong devC
    Gửi bởi toansvcn trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 13
    Bài viết cuối: 23-05-2011, 10:04 PM
  5. Code tìm kiếm trong cây nhị phân trong C++. Lỗi chỉ tìm được từ đầu tiên trong file thôi sửa thế nào?
    Gửi bởi elvish trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 1
    Bài viết cuối: 11-04-2010, 09:43 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn