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 結構。 如果IsTargetInfoMarshaled 為 TRUE,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,但記憶體配置要求失敗。 |
備註
SecMakeSPNEx2 是 SecMakeSPNEx 的增強版本。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista |
最低支援的伺服器 | Windows Server 2008 |
目標平台 | Universal |
標頭 | ntifs.h (包括 Ntifs.h、FltKernel.h) |
程式庫 | Ksecdd.lib |
IRQL | <= APC_LEVEL |