DsCrackSpnA 函式 (dsarse.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 終止字串的指標,其中包含要剖析的 SPN。 SPN 具有下列格式,其中 <服務類別> 和 <實例名稱> 元件必須存在,而且 <埠號碼> 和 <服務名稱> 元件是選擇性的。 <埠號碼> 元件必須是數值字串值。

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

[in, out, optional] pcServiceClass

DWORD 值的指標,該專案上的 TCHARs,包含 ServiceClass 緩衝區的大小,包括終止的 Null 字元。 在結束時,此參數包含 ServiceClass 字串中 TCHAR 數目,包括終止的 null 字元。

如果此參數 NULL,則包含零或 ServiceClassNULL,則會忽略此參數和 ServiceClass

若要取得 ServiceClass 字串所需的字元數,包括 null 終止符,請使用有效的 SPN、非NULLServiceClass,並將此參數設定為 1。

[out, optional] ServiceClass

TCHAR 緩衝區的指標,該緩衝區會接收包含 SPN <服務類別> 元件的 null 終止字串。 此緩衝區的大小必須至少 *pcServiceClass TCHAR。 如果不需要服務類別,此參數可能會 NULL

[in, out, optional] pcServiceName

DWORD 值的指標,在專案上,會包含 ServiceName 緩衝區 TCHARs的大小,包括終止的 Null 字元。 在結束時,此參數包含 ServiceName 字串中 TCHAR 的數目,包括終止的 null 字元。

如果此參數 NULL則會忽略 serviceNameNULL,則會忽略此參數和 ServiceName

若要取得 ServiceName 字串所需的字元數,包括 null 終止符,請使用有效的 SPN 呼叫此函式、非NULLServiceName,並將此參數設定為 1。

[out, optional] ServiceName

TCHAR 緩衝區的指標,該緩衝區會接收包含 SPN <服務名稱> 元件的 null 終止字串。 此緩衝區的大小至少必須 *pcServiceName TCHAR。 如果SPN中沒有 <服務名稱> 元件,則此緩衝區會收到 <實例名稱> 元件。 如果不需要服務名稱,這個參數可能會 NULL

[in, out, optional] pcInstanceName

DWORD 的指標 值,在專案上,會包含 InstanceName 緩衝區之 TCHAR的大小,包括終止的 Null 字元。 結束時,此參數包含 InstanceName 字串中 TCHAR 的數目,包括終止的 null 字元。

如果這個參數 NULL,則會忽略實例名稱 NULL,則會忽略此參數和 InstanceName

若要取得 InstanceName 字串所需的字元數,包括 null 終止符,請使用有效的 SPN 呼叫此函式、非NULLInstanceName,並將此參數設定為 1。

[out, optional] InstanceName

TCHAR 緩衝區的指標,該緩衝區會接收包含 SPN <實例名稱> 元件的 null 終止字串。 此緩衝區必須至少 *pcInstanceName TCHAR 的大小。 如果不需要實例名稱,這個參數可能會 NULL

[out, optional] pInstancePort

DWORD 值的指標,這個值會接收 SPN <埠號碼> 元件的整數值。 如果SPN不包含 <埠號碼> 元件,此參數會收到零。 如果不需要埠號碼,這個參數可能會 NULL

傳回值

傳回 Win32 錯誤碼,包括下列專案。

言論

注意

dsparse.h 標頭會將 DsCrackSpn 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows Vista
支援的最低伺服器 Windows Server 2008
目標平臺 窗戶
標頭 dsparse.h (包括 Ntdsapi.h)
連結庫 Ntdsapi.lib
DLL Ntdsapi.dll

另請參閱

域控制器和復寫管理功能