Subversion Repositories Kolibri OS

Rev

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
Параметры: