RtlUnicodeStringToInteger 函式 (wdm.h)
RtlUnicodeStringToInteger 例程會將數位的 Unicode 字串表示轉換為相等的整數值。
語法
NTSYSAPI NTSTATUS RtlUnicodeStringToInteger(
[in] PCUNICODE_STRING String,
[in, optional] ULONG Base,
[out] PULONG Value
);
參數
[in] String
UNICODE_STRING 結構的指標,其中包含要轉換成對等整數值的數位表示法。
[in, optional] Base
數值,表示 Unicode 字串所代表數位的基底 (或基數) 。 此參數值是選擇性的,可以設定為零。
如果 Base 為零, RtlUnicodeStringToInteger 會檢查 Unicode 字串的前置詞,以判斷數位的基底:
如果前置詞為 「0x」, RtlUnicodeStringToInteger 會將字串中的數位解譯為十六進位整數。
如果前置詞為 「0o」, RtlUnicodeStringToInteger 會將字串中的數位解譯為八進位整數。
如果前置詞為 「0b」, RtlUnicodeStringToInteger 會將字串中的數位解譯為二進位整數。
如果 Unicode 字串不包含上述任何前置詞, RtlUnicodeStringToInteger 會將字串視為 base-10 整數。
[out] Value
RtlUnicodeStringToInteger 所產生之 ULONG 變數的指標會寫入從 Unicode 字串轉換所產生的整數值。
傳回值
如果轉換成功, RtlUnicodeStringToInteger 例程會傳回STATUS_SUCCESS,並將 *Value 設定為 Unicode 字串中數位所代表的整數值。 如果字串不是空的,但開頭不是有效的數位表示法,則例程會傳回STATUS_SUCCESS,並將 *Value 設定為零。 如果字串是空的,則例程會失敗,並傳回STATUS_INVALID_PARAMETER。
備註
這個例程會略過輸入字串開頭的任何空格符,以尋找數位的開頭。
如果字串中的第一個非空格符是連字元 ( ) ,則寫入 *Value 的整數值為負數;否則,如果第一個字元是 “+” 或沒有符號字元,則寫入 *Value 的整數值為正數。
如果字串不包含有效的數位,或字串中的第一個數位前面加上 『+』 或 『-』 以外的非空格符,則例程會將輸出值設定為零,並傳回STATUS_SUCCESS。
包含一或多個有效數位的子字串會由任何不是有效數位的字元終止。 例如,如果 Base = 2,則有效位數為 '0' 和 '1'。 如果 Base = 8,則有效位數為 『0』到 '7'。 如果 Base = 10,則有效位數為 『0』到 『9』。 如果 Base = 16,有效位數為 '0' 到 '9'、'a' 到 'f',而 'A' 為 'F'。
下表包含輸出值的範例,這些輸出值是輸入字串和 基底 參數值的各種組合所產生。
輸入字串 | 基本 | 輸出值 |
---|---|---|
"123" | 10 | 123 |
"-345" | 10 | -345 |
“xyz” | 10 | 0 |
“+678abc” | 10 | 678 |
“+678abc” | 16 | 6785724 |
"007" | 10 | 7 |
"789" | 8 | 7 |
“FGH” | 16 | 15 |
" " | 10 | 0 |
相關的例程 RtlIntegerToUnicodeString 會將整數值轉換為相等的 Unicode 字串表示。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h、Wudfwdm.h) |
程式庫 | NtosKrnl.lib (核心模式) ;Ntdll.lib (使用者模式) |
Dll | NtosKrnl.exe (核心模式) ;Ntdll.dll (使用者模式) |
IRQL | PASSIVE_LEVEL |