Может, хотя автору стоит покопаться в настройках и проверить s power states и как wol с ними взаимодействует в конкретно его случае, в частности пробуждение/включение от pci(e) устройств
Про проводки - это либо что-то совсем старое, либо связано только со включением из холодного состояния (S5), и я просто не в курсе; из остальных режимов pci(e) точно может пробуждать без всяких лишних проводков, если это включено, конечно же
Тут, всё-таки, надо понимать, что у вас есть несколько уровней включения/пробуждения. Магический пакет - это замечательно, но компьютер ещё должен мочь пробуждаться от того устройства, на которое этот магический пакет приходит, а связана эта способность с интерфейсом, через которое это устройство подключается к компьютеру. Кроме того, надо учитывать power states. Обычно это всё очевидно из доступных настроек bios/uefi.
Отключить энергоэфеетивность на сетевой карте, запретить отключать сетевую карту в драйверах, wake on lan это включение питания по сигналу, а не пробуждения хотя вроде и пробудить может но не точно
Ps и если не чего не путаю для внешней pci сетевой карты там какой-то провод на материнскую плату надо подключать или перемычки какие-то но очень давно было
#include <iostream>
#include <Windows.h>
#include <malloc.h>
using std::cout;
using std::cin;
using std::endl;
void prog(int** a) {
int** g = (int**)malloc(3 * 3 * sizeof(int));
int** gg = (int**)malloc(3 * 3 * sizeof(int));
memcpy(g, a, 3 * 3 * sizeof(int));
memcpy(gg, a, 3 * 3 * sizeof(int));
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
cout << a[i][j] << " ";
}
cout << endl;
}
g[1][1] = 1;
cout << endl;
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
cout << g[i][j] << " ";
}
cout << endl;
}
cout << endl;
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
cout << gg[i][j] << " ";
}
cout << endl;
}
cout << endl;
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
cout << a[i][j] << " ";
}
cout << endl;
}
}
int main() {
setlocale(0, "");
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int** meza = new int* [3];
for (int i = 0; i < 3; ++i)
meza[i] = new int[3];
for (int i = 0; i < 3; ++i)
for (int j = 0; j < 3; ++j)
meza[i][j] = 0;
prog(meza);
cout << "\n\nEnd of program, xx: " << endl;
return 0;
}