(wdm.h) RtlInitAnsiString 函式

RtlInitAnsiString 例程會初始化 ANSI 字元的計數位符串。

語法

NTSYSAPI VOID RtlInitAnsiString(
  [out]          PANSI_STRING          DestinationString,
  [in, optional] __drv_aliasesMem PCSZ SourceString
);

參數

[out] DestinationString

要初始化 之ANSI_STRING 結構的指標。

[in, optional] SourceString

Null 終止字元字串的指標。 此字串是用來初始化 DestinationString 所指向的計數位符串。

傳回值

備註

這個例程會初始化計算字元字串。

例程會將SourceString指標值複製到 DestinationString 所指向之ANSI_STRING結構的 Buffer 成員。 這個結構的 Length 成員會設定為來源字串的長度,以位元組為單位,不包括終止 Null。 結構的 MaximumLength 成員會設定為來源字串的長度,以位元組為單位,包括終止 Null。 如果 SourceStringNULL,LengthMaximumLength 都會設定為零。

RtlInitAnsiString 不會改變 SourceString指向的來源字串。

如果來源字串超過 MAXUSHORT - 1 個字節,RtlInitAnsiString 會將 DestinationString 指向之ANSI_STRING結構的 Length 成員設定為 MAXUSHORT - 1,並將這個 結構的 MaximumLength 成員設定為 MAXUSHORT。 在此情況下, LengthMaximumLength 值會誤判 Null 終止來源字串的長度,並依賴這些值的精確度可能很危險。

如果 DestinationString 緩衝區不可分頁,RtlInitAnsiString 的呼叫端可以在 IRQL <= DISPATCH_LEVEL執行。 通常,呼叫端會在 IRQL = PASSIVE_LEVEL執行,因為大部分的其他 RtlXxx字串 例程無法在 IRQL > PASSIVE_LEVEL呼叫。

RTL_CONSTANT_STRING宏會建立字串或 Unicode 字串結構來保存計數位符串。

STRING RTL_CONSTANT_STRING(
  [in]  PCSZ SourceString
);

UNICODE_STRING RTL_CONSTANT_STRING(
  [in]  PCWSTR SourceString
);

RTL_CONSTANT_STRING 會傳回字串結構或 Unicode 字串結構。

RTL_CONSTANT_STRING宏會在傳遞常數位符串時取代 RtlInitAnsiStringRtlInitStringRtlInitUnicodeString 例程。

您可以使用 RTL_CONSTANT_STRING 來初始化全域變數。

規格需求

需求
目標平台 Universal
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL 任何層級 (請參閱一節)

另請參閱

ANSI_STRING