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


Функция 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, которое в записи содержит размер буфера ServiceClass в TCHARs, включая завершающий символ NULL. При выходе этот параметр содержит количество TCHAR в строке ServiceClass , включая завершающий символ NULL.

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

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

[out, optional] ServiceClass

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

[in, out, optional] pcServiceName

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

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

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

[out, optional] ServiceName

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

[in, out, optional] pcInstanceName

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

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

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

[out, optional] InstanceName

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

[out, optional] pInstancePort

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

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

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

Комментарии

Примечание

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

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Windows
Header dsparse.h (включая Ntdsapi.h)
Библиотека Ntdsapi.lib
DLL Ntdsapi.dll

См. также раздел

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