Öffnen Sie einen COM-Port in C ++ mit einer höheren Nummer als 9

Ich benutze einen COM-Port in C ++. Ich kann keine COM-Ports mit einer höheren Nummer als 9 öffnen, zum Beispiel 10. Diese Funktion wird für die Erkennung von COM-Ports verwendet:

WCHAR port_name[7];
WCHAR num_port[4];        

for (i=1; i<256; i++)
{
    bool bSuccess = false;

    wcscpy(port_name,L"COM");
    wcscat(port_name,_itow(i,num_port,10));

    HANDLE hPort;

    //Try to open the port
    hPort = CreateFile(L"COM10", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);
    //hPort = CreateFile(port_name, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);

    if (hPort == INVALID_HANDLE_VALUE)
    {
        DWORD dwError = GetLastError();

        //Check to see if the error was because some other application had the port open
        if (dwError == ERROR_ACCESS_DENIED)
        {
            bSuccess = TRUE;
            j=j+1;  
        }
    }
    else   //The port was opened successfully
    {            
        bSuccess = TRUE;
        j=j+1;

        CloseHandle(hPort);   //closing the port
    }

    if (bSuccess)array_ports[j]=i;

}

Ich kann nicht verstehen, warum zum Beispiel COM10 FFFFFFFF zurück auf HANDLE hPort wirft.

hPort = CreateFile(L"COM10", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);

COM9, COM8, COM7 usw. funktioniert gut,

hPort = CreateFile(L"COM9", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);

Gibt es eine Lösung für dieses Problem?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage