Share via


Fonction DsCrackSpnA (dsparse.h)

La fonction DsCrackSpn analyse un nom de principal de service (SPN) dans ses chaînes de composants.

Syntaxe

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

Paramètres

[in] pszSpn

Pointeur vers une chaîne constante terminée par null qui contient le SPN à analyser. Le SPN a le format suivant, dans lequel la <classe> de service et <les composants de nom> de instance doivent être présents et les <composants de numéro> de port et <de nom> de service sont facultatifs. Le <composant numéro> de port doit être une valeur de chaîne numérique.

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

[in, out, optional] pcServiceClass

Pointeur vers une valeur DWORD qui, à l’entrée, contient la taille, en TCHAR, de la mémoire tampon ServiceClass , y compris le caractère null de fin. À la sortie, ce paramètre contient le nombre de TCHAR dans la chaîne ServiceClass , y compris le caractère null de fin.

Si ce paramètre a la valeur NULL, contient zéro ou Si ServiceClass a la valeur NULL, ce paramètre et ServiceClass sont ignorés.

Pour obtenir le nombre de caractères requis pour la chaîne ServiceClass, y compris la marque de fin Null, appelez cette fonction avec un SPN valide, un ServiceClass non NULL et ce paramètre est défini sur 1.

[out, optional] ServiceClass

Pointeur vers une mémoire tampon TCHAR qui reçoit une chaîne terminée par un caractère Null contenant le <composant de classe> de service du SPN. Cette mémoire tampon doit avoir au moins la taille *pcServiceClass TCHAR . Ce paramètre peut être NULL si la classe de service n’est pas requise.

[in, out, optional] pcServiceName

Pointeur vers une valeur DWORD qui, à l’entrée, contient la taille, en TCHAR, de la mémoire tampon ServiceName , y compris le caractère null de fin. À la sortie, ce paramètre contient le nombre de TCHAR dans la chaîne ServiceName , y compris le caractère null de fin.

Si ce paramètre a la valeur NULL, contient zéro ou Si ServiceName a la valeur NULL, ce paramètre et ServiceName sont ignorés.

Pour obtenir le nombre de caractères requis pour la chaîne ServiceName, y compris le terminateur Null, appelez cette fonction avec un SPN valide, un ServiceName non NULL et ce paramètre est défini sur 1.

[out, optional] ServiceName

Pointeur vers une mémoire tampon TCHAR qui reçoit une chaîne terminée par un caractère Null contenant le <composant de nom> de service du SPN. Cette mémoire tampon doit avoir au moins la taille *pcServiceName TCHAR . Si le <composant de nom> de service n’est pas présent dans le SPN, cette mémoire tampon reçoit le <composant nom instance>. Ce paramètre peut être NULL si le nom du service n’est pas obligatoire.

[in, out, optional] pcInstanceName

Pointeur vers une valeur DWORD qui, à l’entrée, contient la taille, en TCHAR, de la mémoire tampon InstanceName , y compris le caractère null de fin. À la sortie, ce paramètre contient le nombre de TCHAR dans la chaîne InstanceName , y compris le caractère null de fin.

Si ce paramètre a la valeur NULL, contient zéro ou Si InstanceName a la valeur NULL, ce paramètre et InstanceName sont ignorés.

Pour obtenir le nombre de caractères requis pour la chaîne InstanceName, y compris la marque de fin Null, appelez cette fonction avec un SPN valide, un nom d’instance non NULL et ce paramètre est défini sur 1.

[out, optional] InstanceName

Pointeur vers une mémoire tampon TCHAR qui reçoit une chaîne terminée par un caractère Null contenant le <composant de nom> de instance du SPN. La taille de cette mémoire tampon doit être au moins *pcInstanceName TCHAR . Ce paramètre peut avoir la valeur NULL si le nom instance n’est pas requis.

[out, optional] pInstancePort

Pointeur vers une valeur DWORD qui reçoit la valeur entière du <composant numéro> de port du SPN. Si le SPN ne contient pas de <composant de numéro> de port, ce paramètre reçoit zéro. Ce paramètre peut être NULL si le numéro de port n’est pas requis.

Valeur retournée

Retourne un code d’erreur Win32, y compris les éléments suivants.

Remarques

Notes

L’en-tête dsparse.h définit DsCrackSpn en tant qu’alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. La combinaison de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
Serveur minimal pris en charge Windows Server 2008
Plateforme cible Windows
En-tête dsparse.h (inclure Ntdsapi.h)
Bibliothèque Ntdsapi.lib
DLL Ntdsapi.dll

Voir aussi

Fonctions de gestion des contrôleurs de domaine et de la réplication