Summary of Kernel-Mode Safe Integer Functions

The following table summarizes the safe integer functions that are available to kernel-mode drivers.

Functions Purpose

RtlDWordPtrAdd
RtlInt8Add
RtlIntAdd
RtlIntPtrAdd
RtlLongLongAdd
RtlLongPtrAdd
RtlPtrdiffTAdd
RtlShortAdd
RtlSizeTAdd
RtlSSIZETAdd
RtlUInt8Add
RtlUIntAdd
RtlUIntPtrAdd
RtlULongAdd
RtlULongLongAdd
RtlULongPtrAdd
RtlUShortAdd

Addition Functions

RtlDWordPtrMult
RtlInt8Mult
RtlIntMult
RtlIntPtrMult
RtlLongLongMult
RtlLongMult
RtlLongPtrMult
RtlPtrdiffTMult
RtlShortMult
RtlSSIZETMult
RtlUInt8Mult
RtlSizeTMult
RtlULongMult
RtlULongLongMult
RtlUIntPtrMult
RtlUIntMult
RtlULongPtrMult
RtlUShortMult

Multiplication Functions

RtlShortSub
RtlUShortSub
RtlULongPtrSub
RtlULongLongSub
RtlULongSub
RtlUInt8Sub
RtlUIntPtrSub
RtlUIntSub
RtlSSIZETSub
RtlSizeTSub
RtlDWordPtrSub
RtlInt8Sub
RtlPtrdiffTSub
RtlLongSub
RtlIntSub
RtlLongLongSub
RtlIntPtrSub
RtlLongPtrSub

Subtraction Functions

RtlUShortToShort
RtlLongPtrToShort
RtlLongToShort
RtlLongLongToShort
RtlULongLongToShort
RtlULongToShort
RtlUIntPtrToShort
RtlULongPtrToShort
RtlUIntToShort
RtlIntPtrToShort
RtlIntToShort

Conversion to Short

RtlLongPtrToChar
RtlLongLongToChar
RtlUInt8ToChar
RtlULongToChar
RtlLongToChar
RtlULongLongToChar
RtlUIntToChar
RtlIntToChar
RtlIntPtrToChar
RtlULongPtrToChar
RtlShortToChar
RtlUShortToChar
RtlByteToChar
RtlUIntPtrToChar

Conversion to Char

RtlIntPtrToInt
RtlLongLongToInt
RtlLongPtrToInt
RtlULongLongToInt
RtlULongPtrToInt
RtlLongToInt
RtlULongToInt
RtlUIntToInt
RtlUIntPtrToInt

Conversion to Int

RtlUInt8ToInt8
RtlLongLongToInt8
RtlLongPtrToInt8
RtlULongPtrToInt8
RtlLongToInt8
RtlULongLongToInt8
RtlULongToInt8
RtlIntToInt8
RtlIntPtrToInt8
RtlUIntToInt8
RtlByteToInt8
RtlUIntPtrToInt8
RtlUShortToInt8
RtlShortToInt8

Conversion to Int8

RtlUIntPtrToInt16

Conversion to Int16

RtlLongLongToIntPtr
RtlLongPtrToIntPtr
RtlLongToIntPtr
RtlULongToIntPtr
RtlULongPtrToIntPtr
RtlUIntPtrToIntPtr
RtlUIntToIntPtr

Conversion to IntPtr

RtlULongToLong
RtlIntPtrToLong
RtlLongLongToLong
RtlUIntPtrToLong
RtlLongPtrToLong
RtlUIntToLong
RtlULongLongToLong
RtlULongPtrToLong

Conversion to Long

RtlIntPtrToLongPtr
RtlULongToLongPtr
RtlLongLongToLongPtr
RtlUIntPtrToLongPtr
RtlULongLongToLongPtr
RtlUIntToLongPtr
RtlULongPtrToLongPtr

Conversion to LongPtr

RtlULongLongToLongLong
RtlULongPtrToLongLong
RtlUIntPtrToLongLong

Conversion to LongLong

RtlIntPtrToUShort
RtlInt8ToUShort
RtlULongToUShort
RtlIntToUShort
RtlLongLongToUShort
RtlLongPtrToUShort
RtlLongToUShort
RtlShortToUShort
RtlUIntPtrToUShort
RtlUIntToUShort
RtlULongLongToUShort
RtlULongPtrToUShort

Conversion to UShort

RtlUShortToUChar
RtlInt8ToUChar
RtlIntPtrToUChar
RtlIntToUChar
RtlLongLongToUChar
RtlLongPtrToUChar
RtlLongToUChar
RtlShortToUChar
RtlUIntPtrToUChar
RtlUIntToUChar
RtlULongLongToUChar
RtlULongPtrToUChar
RtlULongToUChar

Conversion to UChar

RtlInt8ToUInt
RtlULongToUInt
RtlLongLongToUInt
RtlIntPtrToUInt
RtlShortToUInt
RtlLongPtrToUInt
RtlLongToUInt
RtlUIntPtrToUInt
RtlIntToUInt
RtlULongLongToUInt
RtlULongPtrToUInt

Conversion to Uint

RtlUShortToUInt8
RtlInt8ToUInt8
RtlLongLongToUInt8
RtlIntToUInt8
RtlIntPtrToUInt8
RtlLongPtrToUInt8
RtlShortToUInt8
RtlLongToUInt8
RtlUIntPtrToUInt8
RtlUIntToUInt8
RtlULongLongToUInt8
RtlULongPtrToUInt8
RtlULongToUInt8

Conversion to Uint8

RtlUIntPtrToUInt16

Conversion to Uint16

RtlULongToUIntPtr
RtlLongToUIntPtr
RtlShortToUIntPtr
RtlInt8ToUIntPtr
RtlIntPtrToUIntPtr
RtlLongPtrToUIntPtr
RtlULongLongToUIntPtr
RtlULongPtrToUIntPtr

Conversion to UintPtr

RtlULongPtrToULong
RtlInt8ToULong
RtlIntPtrToULong
RtlIntToULong
RtlLongLongToULong
RtlLongPtrToULong
RtlLongToULong
RtlShortToULong
RtlUIntPtrToULong
RtlULongLongToULong

Conversion to ULong

RtlShortToULongLong
RtlInt8ToULongLong
RtlIntToULongLong
RtlLongLongToULongLong
RtlIntPtrToULongLong
RtlLongPtrToULongLong
RtlLongToULongLong

Conversion to ULongLong

RtlULongLongToULongPtr
RtlIntPtrToULongPtr
RtlLongPtrToULongPtr
RtlInt8ToULongPtr
RtlLongToULongPtr
RtlShortToULongPtr

Conversion to ULongPtr