DsCrackSpnA-Funktion (dsparse.h)

Die DsCrackSpn-Funktion analysiert einen Dienstprinzipalnamen (Service Principal Name, SPN) in seine Komponentenzeichenfolgen.

Syntax

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

Parameter

[in] pszSpn

Zeiger auf eine konstante NULL-Zeichenfolge, die den zu analysierenden SPN enthält. Der SPN hat das folgende Format, in dem die <Dienstklasse> und <instance Namenskomponenten> vorhanden sein müssen und die Portnummer> und <die <Dienstnamenkomponenten> optional sind. Die <Portnummerkomponente> muss ein numerischer Zeichenfolgenwert sein.

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

[in, out, optional] pcServiceClass

Zeiger auf einen DWORD-Wert, der im Eintrag die Größe des ServiceClass-Puffers in TCHARs enthält, einschließlich des beendenden NULL-Zeichens. Beim Beenden enthält dieser Parameter die Anzahl von TCHARs in der ServiceClass-Zeichenfolge , einschließlich des beendenden NULL-Zeichens.

Wenn dieser Parameter NULL ist, null enthält oder ServiceClassNULL ist, werden dieser Parameter und ServiceClass ignoriert.

Rufen Sie diese Funktion mit einem gültigen SPN, einer ServiceClass-Nicht-NULL-Dienstklasse und diesem Parameter auf 1 auf, um die anzahl der für die ServiceClass-Zeichenfolge erforderlichen Zeichen abzurufen, einschließlich des NULL-Endators.

[out, optional] ServiceClass

Zeiger auf einen TCHAR-Puffer , der eine NULL-beendete Zeichenfolge empfängt, die die <Dienstklassenkomponente> des SPN enthält. Dieser Puffer muss mindestens *pcServiceClass TCHARs groß sein. Dieser Parameter kann NULL sein, wenn die Dienstklasse nicht erforderlich ist.

[in, out, optional] pcServiceName

Zeiger auf einen DWORD-Wert, der bei einem Eintrag die Größe des ServiceName-Puffers in TCHARs enthält, einschließlich des beendenden NULL-Zeichens. Beim Beenden enthält dieser Parameter die Anzahl der TCHARs in der ServiceName-Zeichenfolge , einschließlich des beendenden NULL-Zeichens.

Wenn dieser Parameter NULL ist, null enthält oder ServiceNameNULL ist, werden dieser Parameter und ServiceName ignoriert.

Um die Anzahl von Zeichen abzurufen, die für die ServiceName-Zeichenfolge erforderlich sind, einschließlich des NULL-Abschlussators, rufen Sie diese Funktion mit einem gültigen SPN, einem Nicht-NULL-Dienstname und diesem Parameter auf 1 auf.

[out, optional] ServiceName

Zeiger auf einen TCHAR-Puffer , der eine null-beendete Zeichenfolge empfängt, die die <Dienstnamenkomponente> des SPN enthält. Dieser Puffer muss mindestens *pcServiceName TCHARs groß sein. Wenn die <Dienstnamenkomponente> im SPN nicht vorhanden ist, empfängt dieser Puffer die <instance Namenskomponente>. Dieser Parameter kann NULL sein, wenn der Dienstname nicht erforderlich ist.

[in, out, optional] pcInstanceName

Zeiger auf einen DWORD-Wert, der bei einem Eintrag die Größe des InstanceName-Puffers in TCHARs enthält, einschließlich des beendenden NULL-Zeichens. Beim Beenden enthält dieser Parameter die Anzahl der TCHARs in der InstanceName-Zeichenfolge , einschließlich des beendenden NULL-Zeichens.

Wenn dieser Parameter NULL ist, null enthält oder InstanceNameNULL ist, werden dieser Parameter und InstanceName ignoriert.

Um die anzahl der für die InstanceName-Zeichenfolge erforderlichen Zeichen zu erhalten, einschließlich des NULL-Abschlussators, rufen Sie diese Funktion mit einem gültigen SPN, einem Nicht-NULL-Instanzname und diesem Parameter auf 1 auf.

[out, optional] InstanceName

Zeiger auf einen TCHAR-Puffer, der eine NULL-Zeichenfolge empfängt, die die <instance Namenskomponente> des SPN enthält. Dieser Puffer muss mindestens *pcInstanceName TCHARs groß sein. Dieser Parameter kann NULL sein, wenn der instance Name nicht erforderlich ist.

[out, optional] pInstancePort

Zeiger auf einen DWORD-Wert , der den ganzzahligen Wert der <Portnummerkomponente> des SPN empfängt. Wenn der SPN keine Portnummerkomponente> enthält<, empfängt dieser Parameter null. Dieser Parameter kann NULL sein, wenn die Portnummer nicht erforderlich ist.

Rückgabewert

Gibt einen Win32-Fehlercode zurück, einschließlich des folgenden.

Hinweise

Hinweis

Der dsparse.h-Header definiert DsCrackSpn als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile dsparse.h (einschließen von Ntdsapi.h)
Bibliothek Ntdsapi.lib
DLL Ntdsapi.dll

Weitere Informationen

Domänencontroller und Replikationsverwaltungsfunktionen