Share via


Funzione RtlInitString (wdm.h)

La routine RtlInitString inizializza una stringa conteggiata di caratteri a 8 bit.

Sintassi

NTSYSAPI VOID RtlInitString(
  [out]          PSTRING               DestinationString,
  [in, optional] __drv_aliasesMem PCSZ SourceString
);

Parametri

[out] DestinationString

Puntatore alla struttura STRING da inizializzare. Il file di intestazione Ntdef.h definisce questa struttura come identica alla struttura ANSI_STRING .

[in, optional] SourceString

Puntatore a una stringa di caratteri con terminazione null. Questa stringa viene usata per inizializzare la stringa conteggiata a cui fa riferimento DestinationString.

Commenti

Questa routine inizializza una stringa di caratteri conteggiata.

La routine copia il valore del puntatore SourceString nel membro Buffer della struttura STRING a cui punta DestinationString. Il membro Length di questa struttura è impostato sulla lunghezza, in byte, della stringa di origine, esclusa la terminazione null. Il membro MaximumLength della struttura è impostato sulla lunghezza, in byte, della stringa di origine, inclusa la terminazione null. Se SourceString è NULL, Length e MaximumLength sono entrambi impostati su zero.

RtlInitString non modifica la stringa di origine a cui fa riferimento SourceString.

Se la stringa di origine è più lunga di MAXUSHORT - 1 byte, RtlInitStringimposta il membro Length della struttura STRING a cui fa riferimento DestinationString a MAXUSHORT - 1 e imposta il membro MaximumLength di questa struttura su MAXUSHORT. In questo caso, i valori Length e MaximumLength non rappresentano la lunghezza della stringa di origine con terminazione null e si basano sull'accuratezza di questi valori è potenzialmente pericoloso.

I chiamanti di RtlInitString possono essere eseguiti in IRQL <= DISPATCH_LEVEL se il buffer DestinationString non è impaginabile. In genere, i chiamanti vengono eseguiti in IRQL = PASSIVE_LEVEL perché la maggior parte delle altre routine RtlXxxString non può essere chiamata in IRQL > PASSIVE_LEVEL.

La macro RTL_CONSTANT_STRING crea una struttura stringa o Unicode per contenere una stringa conteggiata.

STRING RTL_CONSTANT_STRING(
  [in]  PCSZ SourceString
);

UNICODE_STRING RTL_CONSTANT_STRING(
  [in]  PCWSTR SourceString
);

RTL_CONSTANT_STRING restituisce una struttura stringa o una struttura stringa Unicode.

La macro RTL_CONSTANT_STRING sostituisce le routine RtlInitAnsinitAnsiString, RtlInitString e RtlInitUnicodeString durante il passaggio di una stringa costante.

È possibile usare RTL_CONSTANT_STRING per inizializzare le variabili globali.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Vedere La sezione Osservazioni.

Vedi anche

ANSI_STRING