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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für