次の方法で共有


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

解析する SPN を含む、null で終わる定数文字列へのポインター。 SPN には次の形式があります。この形式では、<サービス クラスの> と <インスタンス名> コンポーネントが存在する必要があり、<ポート番号> と <サービス名> コンポーネントは省略可能です。 コンポーネント><ポート番号は、数値の文字列値である必要があります。

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

[in, out, optional] pcServiceClass

の DWORD 値へのポインター。エントリには、ServiceClass バッファーのサイズ (終端の null 文字を含む) が TCHARに格納されます。 終了時に、このパラメーターには、ServiceClass 文字列に TCHAR の数 (終端の null 文字を含む) が含まれます。

このパラメーターが NULL、0 を含む場合、または ServiceClass が NULL場合、このパラメーターと ServiceClass は無視されます。

ServiceClass 文字列に必要な文字数 (null ターミネータを含む) を取得するには、有効な SPN、以外の NULLServiceClass を指定してこの関数を呼び出し、このパラメーターを 1 に設定します。

[out, optional] ServiceClass

SPN の <サービス クラス> コンポーネントを含む null で終わる文字列を受け取る TCHAR バッファーへのポインター。 このバッファーは、*pcServiceClass TCHAR サイズ 以上である必要があります。 サービス クラスが不要な場合、このパラメーターは NULL 可能性があります。

[in, out, optional] pcServiceName

の DWORD 値へのポインター。エントリでは、ServiceName バッファーのサイズ (終端の null 文字を含む) のサイズ (TCHAR) が含まれます。 終了時に、このパラメーターには、ServiceName 文字列に TCHAR の数 (終端の null 文字を含む) が含まれます。

このパラメーターが NULL、ゼロが含まれている場合、または ServiceName が NULL場合、このパラメーターと ServiceName は無視されます。

ServiceName 文字列に必要な文字数 (null ターミネータを含む) を取得するには、有効な SPN、以外の NULLServiceName、このパラメーターを 1 に設定してこの関数を呼び出します。

[out, optional] ServiceName

SPN の <サービス名> コンポーネントを含む null で終わる文字列を受け取る TCHAR バッファーへのポインター。 このバッファーは、*pcServiceName TCHAR サイズ 以上である必要があります。 <サービス名> コンポーネントが SPN に存在しない場合、このバッファーはコンポーネント><インスタンス名を受け取ります。 サービス名が不要な場合、このパラメーターは NULL 可能性があります。

[in, out, optional] pcInstanceName

エントリ上で、InstanceName バッファーのサイズ (終端の null 文字を含む) TCHARに含まれる DWORD 値へのポインター。 終了時に、このパラメーターには、InstanceName 文字列に TCHAR の数 (終端の null 文字を含む) が含まれます。

このパラメーターが NULL、0 を含む場合、または InstanceName が NULL場合、このパラメーターと instanceName は無視されます。

null ターミネータを含む、InstanceName 文字列に必要な文字数を取得するには、有効な SPN、以外の NULLInstanceName、このパラメーターを 1 に設定して、この関数を呼び出します。

[out, optional] InstanceName

SPN の <インスタンス名> コンポーネントを含む null で終わる文字列を受け取る TCHAR バッファーへのポインター。 このバッファーのサイズは、少なくとも *pcInstanceName TCHAR する必要があります。 インスタンス名が不要な場合、このパラメーターは NULL 可能性があります。

[out, optional] pInstancePort

SPN の <ポート番号> コンポーネントの整数値を受け取る DWORD 値へのポインター。 SPN にコンポーネントの <ポート番号> 含まれていない場合、このパラメーターは 0 を受け取ります。 ポート番号が不要な場合、このパラメーターは NULL 可能性があります。

戻り値

次のような Win32 エラー コードを返します。

備考

手記

dsparse.h ヘッダーは、DSCrackSpn をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルまたは実行時エラーが発生する不一致につながる可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista
サポートされる最小サーバー Windows Server 2008
ターゲット プラットフォーム の ウィンドウズ
ヘッダー dsparse.h (Ntdsapi.h を含む)
ライブラリ Ntdsapi.lib
DLL Ntdsapi.dll

関連項目

ドメイン コントローラーとレプリケーション管理機能の