00001
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
#include "ntrtlp.h"
00037
00038
00039 LARGE_INTEGER
00040 RtlExtendedLargeIntegerDivide (
00041 IN LARGE_INTEGER Dividend,
00042 IN ULONG Divisor,
00043 IN OUT PULONG Remainder OPTIONAL
00044 )
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068 {
00069 LARGE_INTEGER Quotient;
00070
00071 Quotient.QuadPart = Dividend.QuadPart / Divisor;
00072
if (Remainder) {
00073 *Remainder = (ULONG)(Dividend.QuadPart % Divisor);
00074 }
00075
return Quotient;
00076 }
00077
00078 LARGE_INTEGER
00079 RtlLargeIntegerDivide (
00080 IN LARGE_INTEGER Dividend,
00081 IN LARGE_INTEGER Divisor,
00082 IN PLARGE_INTEGER Remainder OPTIONAL
00083 )
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106 {
00107 LARGE_INTEGER Quotient;
00108
00109 Quotient.QuadPart = (ULONGLONG)Dividend.QuadPart / (ULONGLONG)Divisor.QuadPart;
00110
if (Remainder) {
00111 Remainder->QuadPart = ((ULONGLONG)Dividend.QuadPart % (ULONGLONG)Divisor.QuadPart);
00112 }
00113
return Quotient;
00114 }
00115
00116 LARGE_INTEGER
00117 RtlExtendedIntegerMultiply (
00118 IN LARGE_INTEGER Multiplicand,
00119 IN LONG Multiplier
00120 )
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142 {
00143 LARGE_INTEGER Result;
00144
00145 Result.QuadPart = Multiplicand.QuadPart * (LONGLONG)
Multiplier;
00146
return (Result);
00147 }