SecMakeSPNEx2 function (ntifs.h)

SecMakeSPNEx2 creates a service provider name string that can be used when it communicates with specific security service providers.

Syntax

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
);

Parameters

[in] ServiceClass

A pointer to a Unicode string that specifies the service class for the security service provider.

[in] ServiceName

A pointer to a Unicode string that specifies the service name for the security service provider.

[in, optional] InstanceName

A pointer to an optional Unicode string that specifies the instance name that is used to connect with the security service provider.

[in, optional] InstancePort

Port number for an instance of the service. Use 0 for the default port. If this parameter is zero, the SPN does not include a port number.

[in, optional] Referrer

Pointer to a constant null-terminated string that specifies the DNS name of the host that gave an IP address referral. This parameter is ignored unless the ServiceName parameter specifies an IP address.

[in, optional] InTargetInfo

A pointer to a null-terminated string that indicates the target of the context.

[in, out] Spn

A pointer to a Unicode string that receives the security service provider name string that is created by this function.

[out, optional] TotalSize

Pointer to a ULONG that receives the actual length of the SPN created, including the terminating null character.

[in] Allocate

A Boolean variable that indicates if the memory that is used to store the Spn Unicode string should be allocated by this function. If this parameter is TRUE, memory for Spn will be allocated from paged pool.

[in] IsTargetInfoMarshaled

A Boolean variable that indicates that the caller provided a marshaled InTargetInfo structure. If IsTargetInfoMarshaled is TRUE, InTargetInfo->Buffer points to a string representation of the CREDENTIAL_TARGET_INFORMATION structure as returned by the CredMarshalTargetInfo function.

Return value

SecMakeSPNEx2 returns STATUS_SUCCESS on success or one of the following error codes on failure.

Return code Description
STATUS_BUFFER_OVERFLOW The Allocate parameter was set to false and one of the following conditions occurred: (1) The Spn parameter was a NULL pointer. (2) The maximum length for the Spn Unicode string parameter was too small.
STATUS_INVALID_PARAMETER A total length of the Spn parameter exceeds 65535 bytes.
STATUS_NO_MEMORY The Allocate parameter was set to true, but the memory allocation request failed.

Remarks

SecMakeSPNEx2 is an enhanced version of SecMakeSPNEx.

Requirements

Requirement Value
Minimum supported client Windows Vista
Minimum supported server Windows Server 2008
Target Platform Universal
Header ntifs.h (include Ntifs.h, FltKernel.h)
Library Ksecdd.lib
IRQL <= APC_LEVEL

See also

SecMakeSPN

SecMakeSPNEx