다음을 통해 공유


RtlUnicodeStringInitEx 함수(ntstrsafe.h)

RtlUnicodeStringInitEx 함수는 UNICODE_STRING 구조를 초기화합니다.

구문

NTSTRSAFEDDI RtlUnicodeStringInitEx(
  [out]          PUNICODE_STRING  DestinationString,
  [in, optional] NTSTRSAFE_PCWSTR pszSrc,
  [in]           DWORD            dwFlags
);

매개 변수

[out] DestinationString

선택 사항입니다. 초기화할 UNICODE_STRING 구조체에 대한 포인터입니다. pszSrc 포인터는 DestinationString 매개 변수의 UNICODE_STRING 구조에 복사됩니다. pszSrc가 가리키는 문자열의 최대 문자 수는 NTSTRSAFE_UNICODE_STRING_MAX_CCH. DestinationStringNULL일 수 있지만 dwFlags에서 STRSAFE_IGNORE_NULLS 설정된 경우에만 가능합니다.

[in, optional] pszSrc

선택 사항입니다. null로 끝나는 문자열 상수에 대한 포인터입니다. 이 문자열 포인터는 DestinationString 매개 변수가 가리키는 UNICODE_STRING 구조체의 Buffer 멤버에 복사됩니다. 이 문자열 포인터는 NULL일 수 있습니다.

[in] dwFlags

다음 플래그가 정의됩니다.

STRSAFE_IGNORE_NULLS

이 플래그가 설정되면 원본 포인터가 NULL일 수 있습니다. RtlUnicodeStringInitEx 는 복사할 수 있는 빈 문자열(TEXT(""))과 같은 NULL 원본 버퍼 포인터를 처리합니다.

반환 값

RtlUnicodeStringInitEx 는 다음 NTSTATUS 값 중 하나를 반환합니다.

반환 코드 설명
STATUS_SUCCESS
성공 상태 원본 데이터가 있고 문자열이 잘림 없이 복사되었으며 결과 대상 버퍼가 null로 종료됨을 의미합니다.
STATUS_INVALID_PARAMETER
오류 상태 함수가 잘못된 입력 매개 변수를 수신했음을 의미합니다. 자세한 내용은 다음 목록을 참조하세요.
 

RtlUnicodeStringInitEx 는 다음 중 하나가 발생하면 STATUS_INVALID_PARAMETER 값을 반환합니다.

  • pszSrc 매개 변수가 가리키는 문자열의 길이가 NTSTRSAFE_UNICODE_STRING_MAX_CCH 문자보다 큽니다.
  • DestinationString 포인터는 NULL이지만 pszSrc 포인터는 NULL이 아닙니다.
NTSTATUS 값을 테스트하는 방법에 대한 자세한 내용은 NTSTATUS 값 사용을 참조하세요.

설명

RtlUnicodeStringInitEx 함수는 다음을 수행합니다.

  • UNICODE_STRING 구조체의 Length 멤버를 pszSrc 매개 변수가 가리키는 문자열의 길이(바이트)로 설정합니다.
  • UNICODE_STRING 구조체의 MaximumLength 멤버를 pszSrc 매개 변수가 가리키는 문자열의 길이(바이트)와 2바이트로 설정합니다.
  • UNICODE_STRING 구조체의 Buffer 멤버를 pszSrc 매개 변수가 지정하는 주소로 설정합니다.
STRSAFE_IGNORE_NULLS 플래그를 설정하지 않는 한 DestinationString 포인터는 NULL 일 수 없습니다.

안전한 문자열 함수에 대한 자세한 내용은 안전한 문자열 함수 사용을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Sp1(서비스 팩 1)을 사용하여 Windows XP부터 사용할 수 있습니다.
대상 플랫폼 데스크톱
머리글 ntstrsafe.h(Ntstrsafe.h 포함)
라이브러리 Ntstrsafe.lib
IRQL 조작되는 문자열이 항상 메모리에 상주하는 경우 이고, 그렇지 않으면 PASSIVE_LEVEL

추가 정보

RtlUnicodeStringInit

UNICODE_STRING