DsCrackSpnA-Funktion (dsparse.h)
Die DsCrackSpn--Funktion analysiert einen Dienstprinzipalnamen (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
Zeigen Sie auf eine konstante null-beendete Zeichenfolge, die den zu analysierenden SPN enthält. Der SPN weist das folgende Format auf, in dem die <Dienstklasse> und <Instanznamen> Komponenten vorhanden sein muss, und die <Portnummer> und <Dienstnamen> Komponenten optional sind. Die <Portnummer> Komponente muss ein numerischer Zeichenfolgenwert sein.
<service class>/<instance name>:<port number>/<service name>
[in, out, optional] pcServiceClass
Zeiger auf einen DWORD- Wert, der beim Eintrag die Größe in TCHARsdes ServiceClass- Puffers enthält, einschließlich des endenden Nullzeichens. Beim Beenden enthält dieser Parameter die Anzahl der TCHARs in der ServiceClass- Zeichenfolge, einschließlich des endenden NULL-Zeichens.
Wenn dieser Parameter NULL-ist, null enthält oder ServiceClassNULL-ist, werden dieser Parameter und ServiceClass- ignoriert.
Um die Anzahl der zeichen abzurufen, die für die ServiceClass Zeichenfolge erforderlich sind, einschließlich des Null-Terminators, rufen Sie diese Funktion mit einem gültigen SPN, einer nichtNULLServiceClass und diesem Parameter auf 1 fest.
[out, optional] ServiceClass
Zeiger auf einen TCHAR- Puffer, der eine mit Null beendete Zeichenfolge empfängt, die die <Dienstklasse> Komponente des SPN enthält. Dieser Puffer muss mindestens *pcServiceClass TCHARs größe sein. Dieser Parameter kann NULL- sein, wenn die Dienstklasse nicht erforderlich ist.
[in, out, optional] pcServiceName
Zeiger auf einen DWORD- Wert, der beim Eintrag die Größe des ServiceName- Puffers enthält, einschließlich des endenden NULL-Zeichens in TCHARs. Beim Beenden enthält dieser Parameter die Anzahl der TCHARs in der ServiceName- Zeichenfolge, einschließlich des endenden NULL-Zeichens.
Wenn dieser Parameter NULL-ist, null enthält oder ServiceName-NULL-ist, werden dieser Parameter und ServiceName- ignoriert.
Um die Anzahl der zeichen abzurufen, die für die ServiceName Zeichenfolge erforderlich sind, einschließlich des Null-Terminators, rufen Sie diese Funktion mit einem gültigen SPN, einem nichtNULLServiceName und diesem Parameter auf 1 fest.
[out, optional] ServiceName
Zeiger auf einen TCHAR- Puffer, der eine null-beendete Zeichenfolge empfängt, die den <Dienstnamen> Komponente des SPN enthält. Dieser Puffer muss mindestens *pcServiceName TCHARs größe sein. Wenn der <Dienstname> Komponente im SPN nicht vorhanden ist, empfängt dieser Puffer den <Instanznamen> Komponente. Dieser Parameter kann NULL- sein, wenn der Dienstname nicht erforderlich ist.
[in, out, optional] pcInstanceName
Zeiger auf einen DWORD- Wert, der beim Eintrag die Größe in TCHARs-des InstanceName- Puffers enthält, einschließlich des endenden NULL-Zeichens. Beim Beenden enthält dieser Parameter die Anzahl der TCHARs in der InstanceName- Zeichenfolge, einschließlich des endenden NULL-Zeichens.
Wenn dieser Parameter NULL-ist, null enthält oder InstanceName-NULL-ist, werden dieser Parameter und InstanceName- ignoriert.
Um die Anzahl der zeichen abzurufen, die für die InstanceName Zeichenfolge erforderlich sind, einschließlich des Null-Terminators, rufen Sie diese Funktion mit einem gültigen SPN, einem nichtNULLInstanceName- und diesem Parameter auf 1 fest.
[out, optional] InstanceName
Zeiger auf einen TCHAR- Puffer, der eine mit Null beendete Zeichenfolge empfängt, die den <Instanznamen> Komponente des SPN enthält. Dieser Puffer muss mindestens *pcInstanceName TCHARs größe sein. Dieser Parameter kann NULL- sein, wenn der Instanzname nicht erforderlich ist.
[out, optional] pInstancePort
Zeiger auf einen DWORD- Wert, der den ganzzahligen Wert der <Portnummer> Komponente des SPN empfängt. Wenn der SPN keine <Portnummer> Komponente 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 der folgenden.
Bemerkungen
Anmerkung
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 Code, der nicht codierungsneutral ist, 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 |
---|---|
mindestens unterstützte Client- | Windows Vista |
mindestens unterstützte Server- | Windows Server 2008 |
Zielplattform- | Fenster |
Header- | dsparse.h (include Ntdsapi.h) |
Library | Ntdsapi.lib |
DLL- | Ntdsapi.dll |