SecMakeSPNEx2 函式 (ntifs.h)

SecMakeSPNEx2 會建立服務提供者名稱字串,可在與特定安全性服務提供者通訊時使用。

語法

KSECDDDECLSPEC NTSTATUS SecMakeSPNEx2(
  [in]            IN PUNICODE_STRING     ServiceClass,
  [in]            IN PUNICODE_STRING     ServiceName,
  [in, optional]  IN PUNICODE_STRING     InstanceName,
  [in, optional]  IN USHORT              InstancePort,
  [in, optional]  IN PUNICODE_STRING     Referrer,
  [in, optional]  IN PUNICODE_STRING     InTargetInfo,
  [in, out]       IN OUT PUNICODE_STRING Spn,
  [out, optional] OUT PULONG             TotalSize,
  [in]            IN BOOLEAN             Allocate,
  [in]            IN BOOLEAN             IsTargetInfoMarshaled
);

參數

[in] ServiceClass

Unicode 字串的指標,指定安全性服務提供者的服務類別。

[in] ServiceName

Unicode 字串的指標,指定安全性服務提供者的服務名稱。

[in, optional] InstanceName

選擇性 Unicode 字串的指標,指定用來與安全性服務提供者聯機的實例名稱。

[in, optional] InstancePort

服務的實例埠號碼。 針對預設埠使用 0。 如果此參數為零,SPN 不會包含埠號碼。

[in, optional] Referrer

常數 Null 終止字串的指標,指定提供 IP 位址轉介之主機的 DNS 名稱。 除非 ServiceName 參數指定 IP 位址,否則會忽略此參數。

[in, optional] InTargetInfo

表示內容目標的 Null 終止字串指標。

[in, out] Spn

Unicode 字串的指標,接收此函式所建立的安全性服務提供者名稱字串。

[out, optional] TotalSize

ULONG 的指標,接收所建立SPN的實際長度,包括終止 Null 字元。

[in] Allocate

布爾值變數,指出此函式是否應該配置用來儲存 Spn Unicode 字串的記憶體。 如果此參數為 TRUE,Spn 的記憶體將會從分頁集區配置。

[in] IsTargetInfoMarshaled

布爾值變數,指出呼叫端提供了封送處理 InTargetInfo 結構。 如果IsTargetInfoMarshaledTRUE,InTargetInfo-Buffer> 會指向 CredMarshalTargetInfo 函式所傳回之CREDENTIAL_TARGET_INFORMATION結構的字元串表示。

傳回值

SecMakeSPNEx2 會在成功時傳回STATUS_SUCCESS,或在失敗時傳回下列其中一個錯誤碼。

傳回碼 Description
STATUS_BUFFER_OVERFLOW Allocate 參數已設定為 false,且發生下列其中一個條件: (1) Spn 參數是 NULL 指標。 (2) Spn Unicode 字串參數的最大長度太小。
STATUS_INVALID_PARAMETER Spn 參數的總長度超過 65535 個字節。
STATUS_NO_MEMORY Allocate 參數已設定為 true,但記憶體配置要求失敗。

備註

SecMakeSPNEx2SecMakeSPNEx 的增強版本。

規格需求

需求
最低支援的用戶端 Windows Vista
最低支援的伺服器 Windows Server 2008
目標平台 Universal
標頭 ntifs.h (包括 Ntifs.h、FltKernel.h)
程式庫 Ksecdd.lib
IRQL <= APC_LEVEL

另請參閱

SecMakeSPN

SecMakeSPNEx