Поделиться через


Функция DsCrackSpnA (dsparse.h)

Функция DsCrackSpn анализирует имя субъекта-службы (SPN) в строки компонента.

Синтаксис

DSPARSE DWORD DsCrackSpnA(
  [in]                LPCSTR  pszSpn,
  [in, out, optional] LPDWORD pcServiceClass,
  [out, optional]     LPSTR   ServiceClass,
  [in, out, optional] LPDWORD pcServiceName,
  [out, optional]     LPSTR   ServiceName,
  [in, out, optional] LPDWORD pcInstanceName,
  [out, optional]     LPSTR   InstanceName,
  [out, optional]     USHORT  *pInstancePort
);

Параметры

[in] pszSpn

Указатель на строку с константой, завершаемой значением NULL, которая содержит имя субъекта-службы для анализа. Имя субъекта-службы имеет следующий формат, в котором должны присутствовать> класс службы <и <имя экземпляра> компонентов, а <номер порта> и <имя службы> компоненты являются необязательными. <номер порта> компонент должен быть числовым строковым значением.

<service class>/<instance name>:<port number>/<service name>

[in, out, optional] pcServiceClass

Указатель на значение DWORD , содержащее размер TCHARsбуфера ServiceClass, включая конечный символ NULL. При выходе этот параметр содержит число TCHARs в строке ServiceClass ServiceClass, включая завершающий символ NULL.

Если этот параметр NULL, содержит ноль или ServiceClassNULL, этот параметр и ServiceClass игнорируются.

Чтобы получить количество символов, необходимых для строки ServiceClass , включая терминатор NULL, вызовите эту функцию с допустимым spN, неNULLServiceClass и этот параметр имеет значение 1.

[out, optional] ServiceClass

Указатель на буфер TCHAR, который получает строку, завершающуюся значением NULL, содержащую класс службы <> компонент субъекта-службы. Этот буфер должен быть по крайней мере *pcServiceClass TCHARs размера. Этот параметр может быть null, если класс службы не требуется.

[in, out, optional] pcServiceName

Указатель на значение DWORD , содержащее размер TCHARsбуфера serviceName , включая конечный символ NULL. При выходе этот параметр содержит количество TCHARs в строке serviceName ServiceName, включая завершающийся символ NULL.

Если этот параметр null, содержит ноль или имя_службы значение NULL, этот параметр и имя_службы игнорируются.

Чтобы получить количество символов, необходимых для строки ServiceName, включая терминатор NULL, вызовите эту функцию с допустимым spN, неNULLServiceName и этот параметр имеет значение 1.

[out, optional] ServiceName

Указатель на буфер TCHAR , который получает строку, завершающуюся значением NULL, содержащую имя службы компонент субъекта-службы. Этот буфер должен быть по крайней мере *pcServiceName TCHARs размера. Если компонент> имени службы <отсутствует в имени субъекта-службы, этот буфер получает <имя экземпляра> компонента. Этот параметр может быть NULL, если имя службы не требуется.

[in, out, optional] pcInstanceName

Указатель на значение DWORD, содержащее размер TCHARsбуфера экземпляра , включая завершающийся символ NULL. При выходе этот параметр содержит число TCHARs в строке InstanceName, включая завершающийся символ NULL.

Если этот параметр NULL, содержит ноль или Имя_экземпляраNULL, этот параметр и имя_экземпляра игнорируются.

Чтобы получить количество символов, необходимых для строки InstanceName, включая терминатор NULL, вызовите эту функцию с допустимым spN, неNULLInstanceName и этот параметр имеет значение 1.

[out, optional] InstanceName

Указатель на буфер TCHAR , который получает строку, завершающуюся значением NULL, содержащую имя экземпляра компонент субъекта-службы. Этот буфер должен быть по крайней мере *pcInstanceName TCHARs. Этот параметр может быть значение NULL, если имя экземпляра не требуется.

[out, optional] pInstancePort

Указатель на значение DWORD, которое получает целочисленное значение номера порта <> компонента имени участника-службы. Если имя субъекта-службы не содержит <номер порта> компонент, этот параметр получает ноль. Этот параметр может быть значение NULL, если номер порта не требуется.

Возвращаемое значение

Возвращает код ошибки Win32, в том числе следующий.

Замечания

Заметка

Заголовок dsparse.h определяет DsCrackSpn как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, который не является кодировкой нейтральным, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista
минимальный поддерживаемый сервер Windows Server 2008
целевая платформа Виндоус
заголовка dsparse.h (include Ntdsapi.h)
библиотеки Ntdsapi.lib
DLL Ntdsapi.dll

См. также

функции управления доменами и репликацией