Rev 3780 | Rev 4265 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3780 | Rev 3908 | ||
---|---|---|---|
Line 2418... | Line 2418... | ||
2418 | Возвращаемое значение: |
2418 | Возвращаемое значение: |
2419 | * eax = -1 - ошибка (в системе слишком много потоков) |
2419 | * eax = -1 - ошибка (в системе слишком много потоков) |
2420 | * иначе eax = TID - идентификатор потока |
2420 | * иначе eax = TID - идентификатор потока |
Line 2421... | Line 2421... | ||
2421 | 2421 | ||
2422 | ====================================================================== |
- | |
2423 | = Функция 52, подфункция 0 - получить конфигурацию сетевого драйвера. |
- | |
2424 | ====================================================================== |
- | |
2425 | Параметры: |
- | |
2426 | * eax = 52 - номер функции |
- | |
2427 | * ebx = 0 - номер подфункции |
- | |
2428 | Возвращаемое значение: |
- | |
2429 | * eax = двойное слово конфигурации |
- | |
2430 | Замечания: |
- | |
2431 | * Слово конфигурации можно установить подфункцией 2. |
- | |
2432 | * Ядро не использует соответствующую переменную. |
- | |
2433 | Ценность этой переменной и работающих с ней подфункций 0 и 2 |
- | |
2434 | представляется сомнительной. |
- | |
2435 | - | ||
2436 | ====================================================================== |
- | |
2437 | ======= Функция 52, подфункция 1 - получить локальный IP-адрес. ====== |
- | |
2438 | ====================================================================== |
- | |
2439 | Параметры: |
- | |
2440 | * eax = 52 - номер функции |
- | |
2441 | * ebx = 1 - номер подфункции |
- | |
2442 | Возвращаемое значение: |
- | |
2443 | * eax = IP-адрес (4 байта) |
- | |
2444 | Замечания: |
- | |
2445 | * Локальный IP-адрес устанавливается подфункцией 3. |
- | |
2446 | - | ||
2447 | ====================================================================== |
- | |
2448 | Функция 52, подфункция 2 - установить конфигурацию сетевого драйвера. |
- | |
2449 | ====================================================================== |
- | |
2450 | Параметры: |
- | |
2451 | * eax = 52 - номер функции |
- | |
2452 | * ebx = 2 - номер подфункции |
- | |
2453 | * ecx = двойное слово конфигурации; если младшие 7 бит образуют |
- | |
2454 | число 3, это воспринимается как запрос на [пере-]инициализацию |
- | |
2455 | Ethernet-карты, в противном случае Ethernet выключается |
- | |
2456 | Возвращаемое значение: |
- | |
2457 | * если не запрошен Ethernet-интерфейс, то возвращается eax=2, |
- | |
2458 | но это может измениться в будущих версиях ядра |
- | |
2459 | * если запрошен Ethernet-интерфейс, то eax=0 означает ошибку |
- | |
2460 | (отсутствие Ethernet-карты), а ненулевое значение - успех |
- | |
2461 | Замечания: |
- | |
2462 | * Слово конфигурации можно прочитать подфункцией 0. |
- | |
2463 | * Ядро не использует соответствующую переменную. |
- | |
2464 | Ценность этой переменной, подфункции 0 и части подфункции 2, |
- | |
2465 | устанавливающей эту переменную, представляется сомнительной. |
- | |
2466 | - | ||
2467 | ====================================================================== |
- | |
2468 | ====== Функция 52, подфункция 3 - установить локальный IP-адрес. ===== |
- | |
2469 | ====================================================================== |
- | |
2470 | Параметры: |
- | |
2471 | * eax = 52 - номер функции |
- | |
2472 | * ebx = 3 - номер подфункции |
- | |
2473 | * ecx = IP-адрес (4 байта) |
- | |
2474 | Возвращаемое значение: |
- | |
2475 | * текущая реализация возвращает eax=3, но это может быть изменено |
- | |
2476 | в будущих версиях |
- | |
2477 | Замечания: |
- | |
2478 | * Локальный IP-адрес можно получить подфункцией 1. |
- | |
2479 | - | ||
2480 | ====================================================================== |
- | |
2481 | = Функция 52, подфункция 6 - добавить данные в стек входной очереди. = |
- | |
2482 | ====================================================================== |
- | |
2483 | Параметры: |
- | |
2484 | * eax = 52 - номер функции |
- | |
2485 | * ebx = 6 - номер подфункции |
- | |
2486 | * edx = размер данных |
- | |
2487 | * esi = указатель на данные |
- | |
2488 | Возвращаемое значение: |
- | |
2489 | * eax = -1 - ошибка |
- | |
2490 | * eax = 0 - успешно |
- | |
2491 | Замечания: |
- | |
2492 | * Эта функция предназначена только для медленных сетевых драйверов |
- | |
2493 | (PPP, SLIP). |
- | |
2494 | * Размер данных не должен превосходить 1500 байт, |
- | |
2495 | хотя проверок корректности не делается. |
- | |
2496 | - | ||
2497 | ====================================================================== |
- | |
2498 | ====================== Функция 52, подфункция 8 ====================== |
- | |
2499 | ============= Прочитать данные из сетевой очереди вывода. ============ |
- | |
2500 | ====================================================================== |
- | |
2501 | Параметры: |
- | |
2502 | * eax = 52 - номер функции |
- | |
2503 | * ebx = 8 - номер подфункции |
- | |
2504 | * esi = указатель на буфер размером 1500 байт |
- | |
2505 | Возвращаемое значение: |
- | |
2506 | * eax = число прочитанных байт (в текущей реализации |
- | |
2507 | либо 0 = нет данных, либо 1500) |
- | |
2508 | * данные скопированы в буфер |
- | |
2509 | Замечания: |
- | |
2510 | * Эта функция предназначена только для медленных сетевых драйверов |
- | |
2511 | (PPP, SLIP). |
- | |
2512 | - | ||
2513 | ====================================================================== |
- | |
2514 | =========== Функция 52, подфункция 9 - получить gateway IP. ========== |
- | |
2515 | ====================================================================== |
- | |
2516 | Параметры: |
- | |
2517 | * eax = 52 - номер функции |
- | |
2518 | * ebx = 9 - номер подфункции |
- | |
2519 | Возвращаемое значение: |
- | |
2520 | * eax = gateway IP (4 байта) |
- | |
2521 | - | ||
2522 | ====================================================================== |
- | |
2523 | ========= Функция 52, подфункция 10 - получить маску подсети. ======== |
- | |
2524 | ====================================================================== |
- | |
2525 | Параметры: |
- | |
2526 | * eax = 52 - номер функции |
- | |
2527 | * ebx = 10 - номер подфункции |
- | |
2528 | Возвращаемое значение: |
- | |
2529 | * eax = маска подсети |
- | |
2530 | - | ||
2531 | ====================================================================== |
- | |
2532 | ========= Функция 52, подфункция 11 - установить gateway IP. ========= |
- | |
2533 | ====================================================================== |
- | |
2534 | Параметры: |
- | |
2535 | * eax = 52 - номер функции |
- | |
2536 | * ebx = 11 - номер подфункции |
- | |
2537 | * ecx = gateway IP (4 байта) |
- | |
2538 | Возвращаемое значение: |
- | |
2539 | * текущая реализация возвращает eax=11, но это может быть изменено |
- | |
2540 | в будущих реализациях |
- | |
2541 | - | ||
2542 | ====================================================================== |
- | |
2543 | ======== Функция 52, подфункция 12 - установить маску подсети. ======= |
- | |
2544 | ====================================================================== |
- | |
2545 | Параметры: |
- | |
2546 | * eax = 52 - номер функции |
- | |
2547 | * ebx = 12 - номер подфункции |
- | |
2548 | * ecx = маска подсети |
- | |
2549 | Возвращаемое значение: |
- | |
2550 | * текущая реализация возвращает eax=12, но это может быть изменено |
- | |
2551 | в будущих версиях |
- | |
2552 | - | ||
2553 | ====================================================================== |
- | |
2554 | ============ Функция 52, подфункция 13 - получить DNS IP. ============ |
- | |
2555 | ====================================================================== |
- | |
2556 | Параметры: |
- | |
2557 | * eax = 52 - номер функции |
- | |
2558 | * ebx = 13 - номер подфункции |
- | |
2559 | Возвращаемое значение: |
- | |
2560 | * eax = DNS IP (4 байта) |
- | |
2561 | - | ||
2562 | ====================================================================== |
- | |
2563 | =========== Функция 52, подфункция 14 - установить DNS IP. =========== |
- | |
2564 | ====================================================================== |
- | |
2565 | Параметры: |
- | |
2566 | * eax = 52 - номер функции |
- | |
2567 | * ebx = 14 - номер подфункции |
- | |
2568 | * ecx = DNS IP (4 байта) |
- | |
2569 | Возвращаемое значение: |
- | |
2570 | * текущая реализация возвращает eax=14, но это может быть изменено |
- | |
2571 | в следующих версиях |
- | |
2572 | - | ||
2573 | ====================================================================== |
- | |
2574 | ====== Функция 52, подфункция 15 - получить локальный MAC-адрес. ===== |
- | |
2575 | ====================================================================== |
- | |
2576 | Параметры: |
- | |
2577 | * eax = 52 - номер функции |
- | |
2578 | * ebx = 15 - номер подфункции |
- | |
2579 | * ecx = 0 - читать первые 4 байта, |
- | |
2580 | ecx = 4 - читать последние 2 байта |
- | |
2581 | Возвращаемое значение: |
- | |
2582 | * для ecx=0: eax = первые 4 байта MAC-адреса |
- | |
2583 | * для ecx=4: ax = последние 2 байта MAC-адреса, |
- | |
2584 | старшая половина eax разрушается |
- | |
2585 | * для других ecx: eax = -1 как признак ошибки |
- | |
2586 | - | ||
2587 | ====================================================================== |
- | |
2588 | ============ Функция 53, подфункция 0 - открыть UDP-сокет. =========== |
- | |
2589 | ====================================================================== |
- | |
2590 | Параметры: |
- | |
2591 | * eax = 53 - номер функции |
- | |
2592 | * ebx = 0 - номер подфункции |
- | |
2593 | * ecx = локальный порт (учитывается только младшее слово), |
- | |
2594 | ecx = 0 - предоставить системе выбор локального порта |
- | |
2595 | * edx = удалённый порт (учитывается только младшее слово) |
- | |
2596 | * esi = удалённый IP |
- | |
2597 | Возвращаемое значение: |
- | |
2598 | * eax = -1 = 0xFFFFFFFF - ошибка; ebx разрушается |
- | |
2599 | * eax = хэндл сокета (некоторое число, однозначно идентифицирующее |
- | |
2600 | сокет и имеющее смысл только для системы) - успешно; |
- | |
2601 | ebx разрушается |
- | |
2602 | - | ||
2603 | ====================================================================== |
- | |
2604 | ============ Функция 53, подфункция 1 - закрыть UDP-сокет. =========== |
- | |
2605 | ====================================================================== |
- | |
2606 | Параметры: |
- | |
2607 | * eax = 53 - номер функции |
- | |
2608 | * ebx = 1 - номер подфункции |
- | |
2609 | * ecx = хэндл сокета |
- | |
2610 | Возвращаемое значение: |
- | |
2611 | * eax = -1 - неверный хэндл |
- | |
2612 | * eax = 0 - успешно |
- | |
2613 | * ebx разрушается |
- | |
2614 | Замечания: |
- | |
2615 | * Текущая реализация не закрывает автоматически все сокеты потока |
- | |
2616 | при его завершении. В частности, не следует прибивать поток |
- | |
2617 | с кучей открытых сокетов - будет утечка ресурсов. |
- | |
2618 | - | ||
2619 | ====================================================================== |
- | |
2620 | ============== Функция 53, подфункция 2 - опрос сокета. ============== |
- | |
2621 | ====================================================================== |
- | |
2622 | Параметры: |
- | |
2623 | * eax = 53 - номер функции |
- | |
2624 | * ebx = 2 - номер подфункции |
- | |
2625 | * ecx = хэндл сокета |
- | |
2626 | Возвращаемое значение: |
- | |
2627 | * eax = число полученных байт, 0 для неверного хэндла |
- | |
2628 | * ebx разрушается |
- | |
2629 | - | ||
2630 | ====================================================================== |
- | |
2631 | ======== Функция 53, подфункция 3 - прочитать байт из сокета. ======== |
- | |
2632 | ====================================================================== |
- | |
2633 | Параметры: |
- | |
2634 | * eax = 53 - номер функции |
- | |
2635 | * ebx = 3 - номер подфункции |
- | |
2636 | * ecx = хэндл сокета |
- | |
2637 | Возвращаемое значение: |
- | |
2638 | * если нет принятых данных или указан неверный хэндл: |
- | |
2639 | eax=0, bl=0, прочие байты ebx разрушаются |
- | |
2640 | * если были принятые данные: eax=число оставшихся байт |
- | |
2641 | (возможно, 0), bl=прочитанный байт, прочие байты ebx разрушаются |
- | |
2642 | - | ||
2643 | ====================================================================== |
- | |
2644 | ========== Функция 53, подфункция 4 - записать в UDP-сокет. ========== |
- | |
2645 | ====================================================================== |
- | |
2646 | Параметры: |
- | |
2647 | * eax = 53 - номер функции |
- | |
2648 | * ebx = 4 - номер подфункции |
- | |
2649 | * ecx = хэндл сокета |
- | |
2650 | * edx = число байт для записи |
- | |
2651 | * esi = указатель на данные для записи |
- | |
2652 | Возвращаемое значение: |
- | |
2653 | * eax = 0xffffffff - ошибка (неверный хэндл или недостаточно памяти) |
- | |
2654 | * eax = 0 - успешно |
- | |
2655 | * ebx разрушается |
- | |
2656 | Замечания: |
- | |
2657 | * Число байт для записи не может превышать 1500-28, хотя |
- | |
2658 | соответствующей проверки не делается. |
- | |
2659 | - | ||
2660 | ====================================================================== |
- | |
2661 | ============ Функция 53, подфункция 5 - открыть TCP-сокет. =========== |
- | |
2662 | ====================================================================== |
- | |
2663 | Параметры: |
- | |
2664 | * eax = 53 - номер функции |
- | |
2665 | * ebx = 5 - номер подфункции |
- | |
2666 | * ecx = локальный порт (учитывается только младшее слово), |
- | |
2667 | ecx = 0 - предоставить системе выбор локального порта |
- | |
2668 | * edx = удалённый порт (учитывается только младшее слово) |
- | |
2669 | * esi = удалённый IP |
- | |
2670 | * edi = режим открытия: SOCKET_PASSIVE=0 или SOCKET_ACTIVE=1 |
- | |
2671 | Возвращаемое значение: |
- | |
2672 | * eax = -1 = 0xFFFFFFFF - ошибка; ebx разрушается |
- | |
2673 | * eax = хэндл сокета (некоторое число, однозначно идентифицирующее |
- | |
2674 | сокет и имеющее смысл только для системы) - успешно; |
- | |
2675 | ebx разрушается |
- | |
2676 | - | ||
2677 | ====================================================================== |
- | |
2678 | ====== Функция 53, подфункция 6 - получить состояние TCP-сокета. ===== |
- | |
2679 | ====================================================================== |
- | |
2680 | Параметры: |
- | |
2681 | * eax = 53 - номер функции |
- | |
2682 | * ebx = 6 - номер подфункции |
- | |
2683 | * ecx = хэндл сокета |
- | |
2684 | Возвращаемое значение: |
- | |
2685 | * eax = 0 для неверного сокета или статус: одно из |
- | |
2686 | * TCB_LISTEN = 1 |
- | |
2687 | * TCB_SYN_SENT = 2 |
- | |
2688 | * TCB_SYN_RECEIVED = 3 |
- | |
2689 | * TCB_ESTABLISHED = 4 |
- | |
2690 | * TCB_FIN_WAIT_1 = 5 |
- | |
2691 | * TCB_FIN_WAIT_2 = 6 |
- | |
2692 | * TCB_CLOSE_WAIT = 7 |
- | |
2693 | * TCB_CLOSING = 8 |
- | |
2694 | * TCB_LAST_ASK = 9 |
- | |
2695 | * TCB_TIME_WAIT = 10 |
- | |
2696 | * TCB_CLOSED = 11 |
- | |
2697 | * ebx разрушается |
- | |
2698 | - | ||
2699 | ====================================================================== |
- | |
2700 | ========== Функция 53, подфункция 7 - записать в TCP-сокет. ========== |
- | |
2701 | ====================================================================== |
- | |
2702 | Параметры: |
- | |
2703 | * eax = 53 - номер функции |
- | |
2704 | * ebx = 7 - номер подфункции |
- | |
2705 | * ecx = хэндл сокета |
- | |
2706 | * edx = число байт для записи |
- | |
2707 | * esi = указатель на данные для записи |
- | |
2708 | Возвращаемое значение: |
- | |
2709 | * eax = 0xffffffff - ошибка (неверный хэндл или недостаточно памяти) |
- | |
2710 | * eax = 0 - успешно |
- | |
2711 | * ebx разрушается |
- | |
2712 | Замечания: |
- | |
2713 | * Число байт для записи не может превышать 1500-40, |
- | |
2714 | хотя соответствующей проверки не делается. |
- | |
2715 | - | ||
2716 | ====================================================================== |
- | |
2717 | ============ Функция 53, подфункция 8 - закрыть TCP-сокет. =========== |
- | |
2718 | ====================================================================== |
- | |
2719 | Параметры: |
- | |
2720 | * eax = 53 - номер функции |
- | |
2721 | * ebx = 8 - номер подфункции |
- | |
2722 | * ecx = хэндл сокета |
- | |
2723 | Возвращаемое значение: |
- | |
2724 | * eax = -1 - ошибка (неверный хэндл или |
- | |
2725 | недостаточно памяти для пакета закрытия сокета) |
- | |
2726 | * eax = 0 - успешно |
- | |
2727 | * ebx разрушается |
- | |
2728 | Замечания: |
- | |
2729 | * Текущая реализация не закрывает автоматически все сокеты потока |
- | |
2730 | при его завершении. В частности, не следует прибивать поток |
- | |
2731 | с кучей открытых сокетов - будет утечка ресурсов. |
- | |
2732 | - | ||
2733 | ====================================================================== |
- | |
2734 | == Функция 53, подфункция 9 - проверить, свободен ли локальный порт. = |
- | |
2735 | ====================================================================== |
- | |
2736 | Параметры: |
- | |
2737 | * eax = 53 - номер функции |
- | |
2738 | * ebx = 9 - номер подфункции |
- | |
2739 | * ecx = номер локального порта (используются только младшие 16 бит) |
- | |
2740 | Возвращаемое значение: |
- | |
2741 | * eax = 0 - порт используется |
- | |
2742 | * eax = 1 - порт свободен |
- | |
2743 | * ebx разрушается |
- | |
2744 | - | ||
2745 | ====================================================================== |
- | |
2746 | ==== Функция 53, подфункция 10 - получить статус кабеля Ethernet. ==== |
- | |
2747 | ====================================================================== |
- | |
2748 | Параметры: |
- | |
2749 | * eax = 53 - номер функции |
- | |
2750 | * ebx = 10 - номер подфункции |
- | |
2751 | Возвращаемое значение: |
- | |
2752 | * al = -1 - драйвер сетевой карты не загружен или |
- | |
2753 | не поддерживает эту функцию |
- | |
2754 | * al = 0 - кабель не подключён |
- | |
2755 | * al = 1 - кабель подключён |
- | |
2756 | * ebx разрушается |
- | |
2757 | Замечания: |
- | |
2758 | * Текущая реализация ядра поддерживает эту функцию |
- | |
2759 | только для сетевых карт RTL8139. |
- | |
2760 | - | ||
2761 | ====================================================================== |
- | |
2762 | ==== Функция 53, подфункция 11 - прочитать данные сетевого стека. ==== |
- | |
2763 | ====================================================================== |
- | |
2764 | Параметры: |
- | |
2765 | * eax = 53 - номер функции |
- | |
2766 | * ebx = 11 - номер подфункции |
- | |
2767 | * ecx = хэндл сокета |
- | |
2768 | * edx = указатель на буфер |
- | |
2769 | * esi = число байт для чтения; |
- | |
2770 | * esi = 0 - читать все данные (максимум 4096 байт) |
- | |
2771 | Возвращаемое значение: |
- | |
2772 | * eax = число прочитанных байт (0 при неверном хэндле) |
- | |
2773 | * ebx разрушается |
- | |
2774 | - | ||
2775 | ====================================================================== |
- | |
2776 | Функция 53, подфункция 255 - отладочная информация сетевого драйвера. |
- | |
2777 | ====================================================================== |
- | |
2778 | Параметры: |
- | |
2779 | * eax = 53 - номер функции |
- | |
2780 | * ebx = 255 - номер подфункции |
- | |
2781 | * ecx = тип запрашиваемой информации (смотри ниже) |
- | |
2782 | Возвращаемое значение: |
- | |
2783 | * eax = запрошенная информация |
- | |
2784 | * ebx разрушается |
- | |
2785 | Возможные значения ecx: |
- | |
2786 | * 100: длина очереди 0 (empty queue) |
- | |
2787 | * 101: длина очереди 1 (ip-out queue) |
- | |
2788 | * 102: длина очереди 2 (ip-in queue) |
- | |
2789 | * 103: длина очереди 3 (net1out queue) |
- | |
2790 | * 200: число элементов в таблице ARP |
- | |
2791 | * 201: размер таблицы ARP (в элементах) (20 в текущей версии) |
- | |
2792 | * 202: прочитать элемент edx таблицы ARP во временный буфер, откуда |
- | |
2793 | берут информацию 5 последующих типов; |
- | |
2794 | в этом случае eax неопределён |
- | |
2795 | * 203: IP-адрес, запомненный типом 202 |
- | |
2796 | * 204: старшее dword MAC-адреса, запомненного типом 202 |
- | |
2797 | * 205: младшее word MAC-адреса, запомненного типом 202 |
- | |
2798 | * 206: слово статуса, запомненное типом 202 |
- | |
2799 | * 207: слово ttl, запомненное типом 202 |
- | |
2800 | * 2: общее число полученных IP-пакетов |
- | |
2801 | * 3: общее число переданных IP-пакетов |
- | |
2802 | * 4: общее число сдампленных полученных пакетов |
- | |
2803 | * 5: общее число полученных ARP-пакетов |
- | |
2804 | * 6: статус драйвера пакетов, 0=неактивен, |
- | |
2805 | ненулевое значение=активен |
- | |
2806 | - | ||
2807 | ====================================================================== |
2422 | ====================================================================== |
2808 | ====================== Функция 55, подфункция 55 ===================== |
2423 | ====================== Функция 55, подфункция 55 ===================== |
2809 | ========== Начать проигрывать данные на встроенном спикере. ========== |
2424 | ========== Начать проигрывать данные на встроенном спикере. ========== |
2810 | ====================================================================== |
2425 | ====================================================================== |
2811 | Параметры: |
2426 | Параметры: |
Line 4629... | Line 4244... | ||
4629 | 4244 | ||
4630 | Возвращаемое значение: |
4245 | Возвращаемое значение: |
Line 4631... | Line 4246... | ||
4631 | * функция не возвращает значения |
4246 | * функция не возвращает значения |
- | 4247 | ||
- | 4248 | ====================================================================== |
|
- | 4249 | =================== Функция 74, подфункция -1 ======================== |
|
- | 4250 | =========== Получить количество активных сетевых устройств. ========== |
|
- | 4251 | ====================================================================== |
|
- | 4252 | Параметры: |
|
- | 4253 | * eax = 74 - номер функции |
|
- | 4254 | * bl = -1 - номер подфункции |
|
- | 4255 | Возвращаемое значение: |
|
- | 4256 | * eax = количество активных сетевых устройств |
|
- | 4257 | ||
- | 4258 | ====================================================================== |
|
- | 4259 | ==== Функция 74, подфункция 0, Получить тип сетевого устройства. ===== |
|
- | 4260 | ====================================================================== |
|
- | 4261 | Параметры: |
|
- | 4262 | * eax = 74 - номер функции |
|
- | 4263 | * bl = 0 - номер подфункции |
|
- | 4264 | * bh = номер устройства |
|
- | 4265 | Возвращаемое значение: |
|
- | 4266 | * eax = тип устройства |
|
- | 4267 | ||
- | 4268 | ====================================================================== |
|
- | 4269 | ==== Функция 74, подфункция 1, Получить имя сетевого устройства. ===== |
|
- | 4270 | ====================================================================== |
|
- | 4271 | Параметры: |
|
- | 4272 | * eax = 74 - номер функции |
|
- | 4273 | * bl = 1 - номер подфункции |
|
- | 4274 | * bh = номер устройства |
|
- | 4275 | * ecx = указатель на буфера - 64 байт |
|
- | 4276 | Возвращаемое значение: |
|
- | 4277 | * eax = -1 для ошибки |
|
- | 4278 | * В случае успеха в буфер записывается имя сетевого устройства |
|
- | 4279 | ||
- | 4280 | ====================================================================== |
|
- | 4281 | ======= Функция 74, подфункция 2, Сброс сетевого устройства. ========= |
|
- | 4282 | ====================================================================== |
|
- | 4283 | Параметры: |
|
- | 4284 | * eax = 74 - номер функции |
|
- | 4285 | * bl = 2 - номер подфункции |
|
- | 4286 | * bh = номер устройства |
|
- | 4287 | Возвращаемое значение: |
|
- | 4288 | * eax = -1 для ошибки |
|
- | 4289 | ||
- | 4290 | ====================================================================== |
|
- | 4291 | ====== Функция 74, подфункция 3, Остановить сетевое устройство. ====== |
|
- | 4292 | ====================================================================== |
|
- | 4293 | Параметры: |
|
- | 4294 | * eax = 74 - номер функции |
|
- | 4295 | * bl = 3 - номер подфункции |
|
- | 4296 | * bh = номер устройства |
|
- | 4297 | Возвращаемое значение: |
|
- | 4298 | * eax = -1 для ошибки |
|
- | 4299 | ||
- | 4300 | ====================================================================== |
|
- | 4301 | ======= Функция 75, подфункция 0, Open socket (Открыть сокет). ======= |
|
- | 4302 | ====================================================================== |
|
- | 4303 | Параметры: |
|
- | 4304 | * eax = 75 - номер функции |
|
- | 4305 | * bl = 0 - номер подфункции |
|
- | 4306 | * ecx = домен |
|
- | 4307 | * edx = тип |
|
- | 4308 | * esi = протокол |
|
- | 4309 | Возвращаемое значение: |
|
- | 4310 | * eax = номер сокета, -1 для ошибки |
|
- | 4311 | * ebx = код ошибки |
|
- | 4312 | ||
- | 4313 | ====================================================================== |
|
- | 4314 | ======= Функция 75, подфункция 1, Close socket (Закрыть сокет). ====== |
|
- | 4315 | ====================================================================== |
|
- | 4316 | Параметры: |
|
- | 4317 | * eax = 75 - номер функции |
|
- | 4318 | * bl = 1 - номер подфункции |
|
- | 4319 | * ecx = номер сокета |
|
- | 4320 | Возвращаемое значение: |
|
- | 4321 | * eax = -1 для ошибки |
|
- | 4322 | * ebx = код ошибки |
|
- | 4323 | ||
- | 4324 | ====================================================================== |
|
- | 4325 | ============= Функция 75, подфункция 2, Bind (Привязка). ============= |
|
- | 4326 | ====================================================================== |
|
- | 4327 | Параметры: |
|
- | 4328 | * eax = 75 - номер функции |
|
- | 4329 | * bl = 2 - номер подфункции |
|
- | 4330 | * ecx = номер сокета |
|
- | 4331 | * edx = указатель на структуру sockaddr |
|
- | 4332 | * esi = длина структуры sockaddr |
|
- | 4333 | Возвращаемое значение: |
|
- | 4334 | * eax = -1 для ошибки |
|
- | 4335 | * ebx = код ошибки |
|
- | 4336 | ||
- | 4337 | ====================================================================== |
|
- | 4338 | ============ Функция 75, подфункция 3, Listen (Слушать). ============= |
|
- | 4339 | ====================================================================== |
|
- | 4340 | Параметры: |
|
- | 4341 | * eax = 75 - номер функции |
|
- | 4342 | * bl = 3 - номер подфункции |
|
- | 4343 | * ecx = номер сокета |
|
- | 4344 | * edx = backlog (возвращаемый лог) |
|
- | 4345 | Возвращаемое значение: |
|
- | 4346 | * eax = -1 для ошибки |
|
- | 4347 | * ebx = код ошибки |
|
- | 4348 | ||
- | 4349 | ====================================================================== |
|
- | 4350 | ========== Функция 75, подфункция 4, Connect (Соединение). =========== |
|
- | 4351 | ====================================================================== |
|
- | 4352 | Параметры: |
|
- | 4353 | * eax = 75 - номер функции |
|
- | 4354 | * bl = 4 - номер подфункции |
|
- | 4355 | * ecx = номер сокета |
|
- | 4356 | * edx = указатель на структуру sockaddr |
|
- | 4357 | * esi = длина структуры sockaddr |
|
- | 4358 | Возвращаемое значение: |
|
- | 4359 | * eax = -1 для ошибки |
|
- | 4360 | * ebx = код ошибки |
|
- | 4361 | ||
- | 4362 | ====================================================================== |
|
- | 4363 | =========== Функция 75, подфункция 5, Accept (Соглашение). =========== |
|
- | 4364 | ====================================================================== |
|
- | 4365 | Параметры: |
|
- | 4366 | * eax = 75 - номер функции |
|
- | 4367 | * bl = 5 - номер подфункции |
|
- | 4368 | * ecx = номер сокета |
|
- | 4369 | * edx = указатель на структуру sockaddr |
|
- | 4370 | * esi = длина структуры sockaddr |
|
- | 4371 | Возвращаемое значение: |
|
- | 4372 | * eax = номер сокета из принятого сокета, -1 для ошибки |
|
- | 4373 | * ebx = код ошибки |
|
- | 4374 | ||
- | 4375 | ====================================================================== |
|
- | 4376 | ============= Функция 75, подфункция 6, Send (Послать). ============== |
|
- | 4377 | ====================================================================== |
|
- | 4378 | Параметры: |
|
- | 4379 | * eax = 75 - номер функции |
|
- | 4380 | * bl = 6 - номер подфункции |
|
- | 4381 | * ecx = номер сокета |
|
- | 4382 | * edx = указатель на буфер |
|
- | 4383 | * esi = длина буфера |
|
- | 4384 | * edi = флаги |
|
- | 4385 | Возвращаемое значение: |
|
- | 4386 | * eax = количество скопированных байтов, -1 для ошибки |
|
- | 4387 | * ebx = код ошибки |
|
- | 4388 | ||
- | 4389 | ====================================================================== |
|
- | 4390 | ============ Функция 75, подфункция 7, Receive (Получить). =========== |
|
- | 4391 | ====================================================================== |
|
- | 4392 | Параметры: |
|
- | 4393 | * eax = 75 - номер функции |
|
- | 4394 | * bl = 7 - номер подфункции |
|
- | 4395 | * ecx = номер сокета |
|
- | 4396 | * edx = указатель на буфер |
|
- | 4397 | * esi = длина буфера |
|
- | 4398 | * edi = флаги |
|
- | 4399 | Возвращаемое значение: |
|
- | 4400 | * eax = количество скопированных байтов, -1 для ошибки |
|
- | 4401 | * ebx = код ошибки |
|
- | 4402 | ||
- | 4403 | ====================================================================== |
|
- | 4404 | = Функция 75, подфункция 8, Set socket options (Задать опции сокета) = |
|
- | 4405 | ====================================================================== |
|
- | 4406 | Параметры: |
|
- | 4407 | * eax = 75 - номер функции |
|
- | 4408 | * bl = 8 - номер подфункции |
|
- | 4409 | * ecx = номер сокета |
|
- | 4410 | * edx = указатель на optstruct |
|
- | 4411 | Возвращаемое значение: |
|
- | 4412 | * eax = -1 для ошибки |
|
- | 4413 | * ebx = код ошибки |
|
- | 4414 | Замечания: |
|
- | 4415 | ||
- | 4416 | Optstruct: dd level |
|
- | 4417 | dd optionname |
|
- | 4418 | dd optlength |
|
- | 4419 | db options... |
|
- | 4420 | ||
- | 4421 | ====================================================================== |
|
- | 4422 | = Функция 75, подфункция 9, Get socket options(Получить опции сокета) |
|
- | 4423 | ====================================================================== |
|
- | 4424 | Параметры: |
|
- | 4425 | * eax = 75 - номер функции |
|
- | 4426 | * bl = 9 - номер подфункции |
|
- | 4427 | * ecx = номер сокета |
|
- | 4428 | * edx = указатель на optstruct |
|
- | 4429 | Возвращаемое значение: |
|
- | 4430 | * eax = -1 для ошибки |
|
- | 4431 | * ebx = код ошибки |
|
- | 4432 | Замечания: |
|
- | 4433 | ||
- | 4434 | Optstruct: dd level |
|
- | 4435 | dd optionname |
|
- | 4436 | dd optlength |
|
- | 4437 | db options... |
|
- | 4438 | ||
- | 4439 | ====================================================================== |
|
- | 4440 | = Функция 75, подфункция 10, Get socketpair (Получить парный сокет). = |
|
- | 4441 | ====================================================================== |
|
- | 4442 | Параметры: |
|
- | 4443 | * eax = 75 - номер функции |
|
- | 4444 | * bl = 10 - номер подфункции |
|
- | 4445 | Возвращаемое значение: |
|
- | 4446 | * eax = socketnum1, -1 для ошибки |
|
- | 4447 | * ebx = socketnum2, код ошибки в случае ошибки |
|
- | 4448 | Замечания: |
|
- | 4449 | ||
- | 4450 | Optstruct: dd level |
|
- | 4451 | dd optionname |
|
- | 4452 | dd optlength |
|
- | 4453 | db options... |
|
4632 | 4454 | ||
4633 | ====================================================================== |
4455 | ====================================================================== |
4634 | ========== Функция -1 - завершить выполнение потока/процесса ========= |
4456 | ========== Функция -1 - завершить выполнение потока/процесса ========= |
4635 | ====================================================================== |
4457 | ====================================================================== |
4636 | Параметры: |
4458 | Параметры: |