Исключение «Поставщик не может выполнить попытку операции», когда я хочу создать COM

Это пример кода для создания COM. Сначала создайте новый экземпляр класса Win32_PnPEntity WMI, затем создайте новый экземпляр класса Win32_PnPEntity. Кажется, что-то не так с Win23_PnPEntity.

Я запускаю этот путь "wmic/namespace:\root\cimv2 Win32_PnPEntity get ProviderType/format:list " и получите "Узел - DEV-2023 ОШИБКА: Описание = Неверный запрос"

ManagementScope scope = new ManagementScope(@"\\.\root\cimv2");

        // Create a new instance of the Win32_SerialPort WMI class
        ManagementClass serialClass = new ManagementClass(scope, new ManagementPath("Win32_SerialPort"), new ObjectGetOptions());

        // Create a new instance of the Win32_SerialPort class
        ManagementObject serial = serialClass.CreateInstance();

        // Set the properties for the new serial port
        serial["DeviceID"] = "COM3"; // Set the COM port number
        serial["Name"] = "My Serial Port"; // Set the name of the port
        serial["Description"] = "This is my serial port"; // Set the description
        serial["Caption"] = "My Serial Port"; // Set the caption
        //serial["ProviderType"] = "RS232"; // Set the provider type

        // Save the new serial port instance
        serial.Put();

Код не имеет большого смысла, вы не можете создать последовательный порт в программном обеспечении. Требуется оборудование, его драйвер добавляет запись.

Hans Passant 11.04.2023 14:37

извините, я имею в виду виртуальный порт

Hamed 13.04.2023 09:27

Тогда практически нет смысла, нет механизма установки виртуального порта через WMI. Как вам напоминает исключение.

Hans Passant 13.04.2023 09:36

можно ли использовать сторонний драйвер или эмулятор? Это совсем невозможно?

Hamed 13.04.2023 09:59

@Hamed Чего ты на самом деле пытаешься здесь добиться? Какую проблему (в реальном мире или в сфере бизнеса/домена) вы пытаетесь решить? Почему вы считаете, что вам нужен виртуальный последовательный/COM-порт (и где/как этот виртуальный порт будет реагировать на передаваемые в него данные?).

Dai 13.04.2023 12:27

Мне нужно создать пару виртуальных COM для имитации подключения к реальному COM. Это для обработки множественного подключения к устройству (принтеру).

Hamed 13.04.2023 12:37

@Hamed Пожалуйста, объясните, как, по вашему мнению, «виртуальные» COM-порты могут вам здесь помочь ...

Dai 13.04.2023 13:56

Я в середине НИОКР по этому поводу. После создания 2-х виртуальных портов, думаю, можно один отдать тем, кто хочет использовать устройство, а другой подключить к реальному COM.

Hamed 13.04.2023 14:22
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
8
58
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

После некоторого поиска по этому поводу кажется, что создание виртуального последовательного порта требует поддержки на уровне ядра, обычно в виде драйвера. Таким образом, это невозможно сделать в C#.

Я использовал это github.com/paulakg4/com0com отлично работает

Hamed 25.04.2023 15:27

Другие вопросы по теме