📄 legacy.cod
字号:
; 809 : SerialLogError(
; 810 : DriverObject,
; 811 : NULL,
; 812 : PUserData->UserPort,
; 813 : SerialPhysicalZero,
; 814 : 0,
; 815 : 0,
; 816 : 0,
; 817 : 64,
; 818 : STATUS_SUCCESS,
; 819 : SERIAL_INVALID_USER_CONFIG,
; 820 : UserSubKey->NameLength+sizeof(WCHAR),
; 821 : &UserSubKey->Name[0],
; 822 : (wcslen(Parameters[1].Name)*sizeof(WCHAR))
; 823 : + sizeof(WCHAR),
; 824 : Parameters[1].Name
; 825 : );
00018 8b 45 10 mov eax, DWORD PTR _Parameters$[ebp]
0001b 8b 40 24 mov eax, DWORD PTR [eax+36]
0001e 50 push eax
0001f 50 push eax
00020 ff 15 00 00 00
00 call DWORD PTR __imp__wcslen
00026 59 pop ecx
00027 8d 44 00 02 lea eax, DWORD PTR [eax+eax+2]
0002b 50 push eax
0002c 8b 45 0c mov eax, DWORD PTR _UserSubKey$[ebp]
0002f 8d 48 10 lea ecx, DWORD PTR [eax+16]
00032 8b 40 0c mov eax, DWORD PTR [eax+12]
00035 40 inc eax
00036 51 push ecx
00037 40 inc eax
00038 50 push eax
00039 68 19 00 06 c0 push -1073348583 ; c0060019H
0003e 53 push ebx
0003f 6a 40 push 64 ; 00000040H
; 826 : SerialDump(
; 827 : SERERRORS,
; 828 : ("SERIAL: Bogus port address %ws\n",
; 829 : Parameters[1].Name)
; 830 : );
; 831 : rval = FALSE;
; 832 : goto SerialIsUserDataValidError;
00041 e9 65 01 00 00 jmp $L15608
$L15030:
; 833 : }
; 834 :
; 835 : if (!PUserData->UserVector) {
00046 39 5e 10 cmp DWORD PTR [esi+16], ebx
00049 75 2e jne SHORT $L15041
; 836 :
; 837 : //
; 838 : // Ehhhh! Lose Game.
; 839 : //
; 840 :
; 841 : SerialLogError(
; 842 : DriverObject,
; 843 : NULL,
; 844 : PUserData->UserPort,
; 845 : SerialPhysicalZero,
; 846 : 0,
; 847 : 0,
; 848 : 0,
; 849 : 65,
; 850 : STATUS_SUCCESS,
; 851 : SERIAL_INVALID_USER_CONFIG,
; 852 : UserSubKey->NameLength+sizeof(WCHAR),
; 853 : &UserSubKey->Name[0],
; 854 : (wcslen(Parameters[2].Name)*sizeof(WCHAR))
; 855 : + sizeof(WCHAR),
; 856 : Parameters[2].Name
; 857 : );
0004b 8b 45 10 mov eax, DWORD PTR _Parameters$[ebp]
0004e 8b 40 40 mov eax, DWORD PTR [eax+64]
00051 50 push eax
00052 50 push eax
00053 ff 15 00 00 00
00 call DWORD PTR __imp__wcslen
00059 59 pop ecx
0005a 8d 44 00 02 lea eax, DWORD PTR [eax+eax+2]
0005e 50 push eax
0005f 8b 45 0c mov eax, DWORD PTR _UserSubKey$[ebp]
00062 8d 48 10 lea ecx, DWORD PTR [eax+16]
00065 8b 40 0c mov eax, DWORD PTR [eax+12]
00068 40 inc eax
00069 51 push ecx
0006a 40 inc eax
0006b 50 push eax
0006c 68 19 00 06 c0 push -1073348583 ; c0060019H
00071 53 push ebx
00072 6a 41 push 65 ; 00000041H
; 858 : SerialDump(
; 859 : SERERRORS,
; 860 : ("SERIAL: Bogus vector %ws\n",
; 861 : Parameters[2].Name)
; 862 : );
; 863 :
; 864 : rval = FALSE;
; 865 : goto SerialIsUserDataValidError;
00074 e9 32 01 00 00 jmp $L15608
$L15041:
; 866 : }
; 867 :
; 868 : if (!PUserData->UserSymbolicLink.Length) {
00079 66 8b 46 14 mov ax, WORD PTR [esi+20]
0007d 66 3b c3 cmp ax, bx
00080 75 2e jne SHORT $L15051
; 869 :
; 870 : //
; 871 : // Ehhhh! Lose Game.
; 872 : //
; 873 :
; 874 : SerialLogError(DriverObject, NULL, PUserData->UserPort,
; 875 : SerialPhysicalZero, 0, 0, 0, 66, STATUS_SUCCESS,
; 876 : SERIAL_INVALID_USER_CONFIG,
; 877 : UserSubKey->NameLength + sizeof(WCHAR),
; 878 : &UserSubKey->Name[0],
; 879 : (wcslen(Parameters[3].Name) * sizeof(WCHAR))
; 880 : + sizeof(WCHAR),
; 881 : Parameters[3].Name);
00082 8b 45 10 mov eax, DWORD PTR _Parameters$[ebp]
00085 8b 40 5c mov eax, DWORD PTR [eax+92]
00088 50 push eax
00089 50 push eax
0008a ff 15 00 00 00
00 call DWORD PTR __imp__wcslen
00090 59 pop ecx
00091 8d 44 00 02 lea eax, DWORD PTR [eax+eax+2]
00095 50 push eax
00096 8b 45 0c mov eax, DWORD PTR _UserSubKey$[ebp]
00099 8d 48 10 lea ecx, DWORD PTR [eax+16]
0009c 8b 40 0c mov eax, DWORD PTR [eax+12]
0009f 40 inc eax
000a0 51 push ecx
000a1 40 inc eax
000a2 50 push eax
000a3 68 19 00 06 c0 push -1073348583 ; c0060019H
000a8 53 push ebx
000a9 6a 42 push 66 ; 00000042H
; 882 :
; 883 : SerialDump(
; 884 : SERERRORS,
; 885 : ("SERIAL: bogus value for %ws\n",
; 886 : Parameters[3].Name)
; 887 : );
; 888 :
; 889 : rval = FALSE;
; 890 : goto SerialIsUserDataValidError;
000ab e9 fb 00 00 00 jmp $L15608
$L15051:
; 891 : }
; 892 :
; 893 : if (PUserData->UserInterruptStatus.LowPart != 0) {
000b0 39 5e 08 cmp DWORD PTR [esi+8], ebx
000b3 74 78 je SHORT $L15093
; 894 :
; 895 : if (PUserData->UserPortIndex == MAXULONG) {
000b5 8b 4e 1c mov ecx, DWORD PTR [esi+28]
000b8 83 f9 ff cmp ecx, -1
000bb 75 18 jne SHORT $L15062
; 896 :
; 897 : //
; 898 : // Ehhhh! Lose Game.
; 899 : //
; 900 :
; 901 : SerialLogError(
; 902 : DriverObject,
; 903 : NULL,
; 904 : PUserData->UserPort,
; 905 : SerialPhysicalZero,
; 906 : 0,
; 907 : 0,
; 908 : 0,
; 909 : 67,
; 910 : STATUS_SUCCESS,
; 911 : SERIAL_INVALID_PORT_INDEX,
; 912 : PUserData->UserSymbolicLink.Length+sizeof(WCHAR),
; 913 : PUserData->UserSymbolicLink.Buffer,
; 914 : 0,
; 915 : NULL
; 916 : );
000bd 0f b7 c0 movzx eax, ax
000c0 53 push ebx
000c1 53 push ebx
000c2 ff 76 18 push DWORD PTR [esi+24]
000c5 40 inc eax
000c6 40 inc eax
000c7 50 push eax
000c8 68 14 00 06 c0 push -1073348588 ; c0060014H
000cd 53 push ebx
000ce 6a 43 push 67 ; 00000043H
; 917 : SerialDump(
; 918 : SERERRORS,
; 919 : ("SERIAL: Bogus port index %ws\n",
; 920 : Parameters[0].Name)
; 921 : );
; 922 :
; 923 : rval = FALSE;
; 924 : goto SerialIsUserDataValidError;
000d0 e9 d6 00 00 00 jmp $L15608
$L15062:
; 925 :
; 926 : } else if (!PUserData->UserPortIndex) {
000d5 3b cb cmp ecx, ebx
000d7 75 18 jne SHORT $L15072
; 927 :
; 928 : //
; 929 : // So sorry, you must have a non-zero port index.
; 930 : //
; 931 :
; 932 : SerialLogError(
; 933 : DriverObject,
; 934 : NULL,
; 935 : PUserData->UserPort,
; 936 : SerialPhysicalZero,
; 937 : 0,
; 938 : 0,
; 939 : 0,
; 940 : 68,
; 941 : STATUS_SUCCESS,
; 942 : SERIAL_INVALID_PORT_INDEX,
; 943 : PUserData->UserSymbolicLink.Length+sizeof(WCHAR),
; 944 : PUserData->UserSymbolicLink.Buffer,
; 945 : 0,
; 946 : NULL
; 947 : );
000d9 0f b7 c0 movzx eax, ax
000dc 53 push ebx
000dd 53 push ebx
000de ff 76 18 push DWORD PTR [esi+24]
000e1 40 inc eax
000e2 40 inc eax
000e3 50 push eax
000e4 68 14 00 06 c0 push -1073348588 ; c0060014H
000e9 53 push ebx
000ea 6a 44 push 68 ; 00000044H
; 948 : SerialDump(
; 949 : SERERRORS,
; 950 : ("SERIAL: Port index must be > 0 for any\n"
; 951 : "------- port on a multiport card: %ws\n",
; 952 : Parameters[0].Name)
; 953 : );
; 954 :
; 955 : rval = FALSE;
; 956 : goto SerialIsUserDataValidError;
000ec e9 ba 00 00 00 jmp $L15608
$L15072:
; 957 :
; 958 : } else {
; 959 :
; 960 : if (PUserData->UserIndexed) {
000f1 39 5e 2c cmp DWORD PTR [esi+44], ebx
000f4 74 1d je SHORT $L15082
; 961 :
; 962 : if (PUserData->UserPortIndex > SERIAL_MAX_PORTS_INDEXED) {
000f6 83 f9 10 cmp ecx, 16 ; 00000010H
000f9 76 32 jbe SHORT $L15093
; 963 :
; 964 : SerialLogError(
; 965 : DriverObject,
; 966 : NULL,
; 967 : PUserData->UserPort,
; 968 : SerialPhysicalZero,
; 969 : 0,
; 970 : 0,
; 971 : 0,
; 972 : 69,
; 973 : STATUS_SUCCESS,
; 974 : SERIAL_PORT_INDEX_TOO_HIGH,
; 975 : PUserData->UserSymbolicLink.Length+sizeof(WCHAR),
; 976 : PUserData->UserSymbolicLink.Buffer,
; 977 : 0,
; 978 : NULL
; 979 : );
000fb 0f b7 c0 movzx eax, ax
000fe 53 push ebx
000ff 53 push ebx
00100 ff 76 18 push DWORD PTR [esi+24]
00103 40 inc eax
00104 40 inc eax
00105 50 push eax
00106 68 15 00 06 c0 push -1073348587 ; c0060015H
0010b 53 push ebx
0010c 6a 45 push 69 ; 00000045H
; 980 : SerialDump(
; 981 : SERERRORS,
; 982 : ("SERIAL: port index to large %ws\n",
; 983 : Parameters[0].Name)
; 984 : );
; 985 :
; 986 : rval = FALSE;
; 987 : goto SerialIsUserDataValidError;
0010e e9 98 00 00 00 jmp $L15608
$L15082:
; 988 : }
; 989 :
; 990 : } else {
; 991 :
; 992 : if (PUserData->UserPortIndex > SERIAL_MAX_PORTS_NONINDEXED) {
00113 83 f9 08 cmp ecx, 8
00116 76 15 jbe SHORT $L15093
; 993 :
; 994 : SerialLogError(
; 995 : DriverObject,
; 996 : NULL,
; 997 : PUserData->UserPort,
; 998 : SerialPhysicalZero,
; 999 : 0,
; 1000 : 0,
; 1001 : 0,
; 1002 : 70,
; 1003 : STATUS_SUCCESS,
; 1004 : SERIAL_PORT_INDEX_TOO_HIGH,
; 1005 : PUserData->UserSymbolicLink.Length+sizeof(WCHAR),
; 1006 : PUserData->UserSymbolicLink.Buffer,
; 1007 : 0,
; 1008 : NULL
; 1009 : );
00118 0f b7 c0 movzx eax, ax
0011b 53 push ebx
0011c 53 push ebx
0011d ff 76 18 push DWORD PTR [esi+24]
00120 40 inc eax
00121 40 inc eax
00122 50 push eax
00123 68 15 00 06 c0 push -1073348587 ; c0060015H
00128 53 push ebx
00129 6a 46 push 70 ; 00000046H
; 1010 : SerialDump(
; 1011 : SERERRORS,
; 1012 : ("SERIAL: port index to large %ws\n",
; 1013 : Parameters[0].Name)
; 1014 : );
; 1015 :
; 1016 : rval = FALSE;
; 1017 : goto SerialIsUserDataValidError;
0012b eb 7e jmp SHORT $L15608
$L15093:
; 1018 : }
; 1019 :
; 1020 : }
; 1021 :
; 1022 : }
; 1023 :
; 1024 : }
; 1025 :
; 1026 : //
; 1027 : // We don't want to cause the hal to have a bad day,
; 1028 : // so let's check the interface type and bus number.
; 1029 : //
; 1030 : // We only need to check the registry if they aren't
;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -