共用方式為


deletePersistentTcpPortReservation 函式 (iphlpapi.h)

DeletePersistentTcpPortReservation 函式會刪除本機計算機上連續 TCP 埠區塊的持續性 TCP 埠保留。

語法

IPHLPAPI_DLL_LINKAGE ULONG DeletePersistentTcpPortReservation(
  [in] USHORT StartPort,
  [in] USHORT NumberOfPorts
);

參數

[in] StartPort

以網路位元組順序起始的 TCP 連接埠號碼。

[in] NumberOfPorts

要刪除的 TCP 連接埠號碼數目。

傳回值

如果函式成功,傳回值會NO_ERROR。

如果函式失敗,傳回值就是下列其中一個錯誤碼。

傳回碼 Description
ERROR_ACCESS_DENIED
存取遭到拒絕。 此錯誤會在下列幾個情況下傳回:使用者缺少本機計算機上的必要系統管理許可權,或應用程式未在增強的殼層中執行,因為 RunAs 系統管理員) 內建系統管理員 (。
ERROR_INVALID_PARAMETER
無效的參數已傳遞至 函式。 如果在 StartPortNumberOfPorts 參數中傳遞零,則會傳回此錯誤。
ERROR_NOT_FOUND
找不到元素。 如果找不到 StartPortNumberOfPorts 參數所指定的持續性埠區塊,就會傳回此錯誤。
其他
使用 FormatMessage 取得傳回錯誤的訊息字串。

備註

DeletePersistentTcpPortReservation 函式是在 Windows Vista 和更新版本上定義。

DeletePersistentTcpPortReservation 函式可用來刪除 TCP 埠區塊的持續性保留。

DeletePersistentTcpPortReservation 函式只能由以 Administrators 群組成員身分登入的使用者呼叫。 如果 DeletePersistentTcpPortReservation 是由不是 Administrators 群組成員的使用者呼叫,則函數調用將會失敗,並 傳回ERROR_ACCESS_DENIED 。 此函式也可能因為 Windows Vista 和更新版本的用戶帳戶控制 (UAC) 而失敗。 如果包含此函式的應用程式是由以內建系統管理員以外的 Administrators 群組成員身分登入的使用者所執行,除非應用程式已在指令清單檔案中標示 為 requestedExecutionLevel 設定為 requireAdministrator,否則此呼叫將會失敗。 如果應用程式缺少此指令清單檔,則以系統管理員以外的 Administrators 群組成員身分登入的使用者,必須在增強的殼層中執行應用程式,因為內建的 Administrator (RunAs 系統管理員) ,此函式才能成功。

範例

下列範例會刪除永續性 TCP 通訊埠保留。

此範例必須由屬於Administrators群組成員的用戶執行。 執行此範例最簡單的方式是使用增強的殼層,作為內建的 Administrator (RunAs 系統管理員) 。

#ifndef UNICODE
#define UNICODE
#endif

#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif

#include <Windows.h.>
#include <winsock2.h>
#include <ws2ipdef.h> 
#include <iphlpapi.h>
#include <stdio.h>
#include <stdlib.h>

// Need to link with iphlpapi.lib
#pragma comment(lib, "iphlpapi.lib")

// Need to link with ws2_32.lib for htons
#pragma comment(lib, "ws2_32.lib")

int wmain(int argc, WCHAR **argv)  {

    // Declare and initialize variables
    
    int startPort = 0;         // host byte order
    int numPorts = 0;
    USHORT startPortns = 0;    // Network byte order
    
    unsigned long status = 0;

    // Validate the parameters
    if (argc != 3) {
        wprintf(L"usage: %s <Starting Port> <Number of Ports>\n", argv[0]);
        wprintf(L"Delete a persistent TCP port reservation\n");
        wprintf(L"Example usage:\n");
        wprintf(L"   %s 5000 20\n", argv[0]);
        wprintf(L"   where StartPort=5000 NumPorts=20");
        return 1;
    }

    startPort = _wtoi(argv[1]);
    if ( startPort < 0 || startPort> 65535) {
        wprintf(L"Starting point must be either 0 or between 1 and 65,535\n");
        return 1;
    }    
    startPortns = htons((u_short) startPort);

    numPorts = _wtoi(argv[2]);
    if (numPorts < 0) {
        wprintf(L"Number of ports must be a positive number\n");
        return 1;
    }    

    status = DeletePersistentTcpPortReservation((USHORT) startPortns, (USHORT) numPorts);
    if( status != NO_ERROR )
    {
        wprintf(L"DeletePersistentTcpPortReservation returned error: %ld\n", 
            status);
        return 1;
    }

    wprintf(L"DeletePersistentTcpPortReservation call succeeded\n");  

    return 0;
}

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 iphlpapi.h
程式庫 Iphlpapi.lib
Dll Iphlpapi.dll

另請參閱

CreatePersistentTcpPortReservation

CreatePersistentUdpPortReservation

DeletePersistentUdpPortReservation

LookupPersistentTcpPortReservation

LookupPersistentUdpPortReservation