|
Packit Service |
fa4841 |
/**
|
|
Packit Service |
fa4841 |
* WinPR: Windows Portable Runtime
|
|
Packit Service |
fa4841 |
* Active Directory Domain Services Parsing Functions
|
|
Packit Service |
fa4841 |
*
|
|
Packit Service |
fa4841 |
* Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
|
Packit Service |
fa4841 |
*
|
|
Packit Service |
fa4841 |
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
Packit Service |
fa4841 |
* you may not use this file except in compliance with the License.
|
|
Packit Service |
fa4841 |
* You may obtain a copy of the License at
|
|
Packit Service |
fa4841 |
*
|
|
Packit Service |
fa4841 |
* http://www.apache.org/licenses/LICENSE-2.0
|
|
Packit Service |
fa4841 |
*
|
|
Packit Service |
fa4841 |
* Unless required by applicable law or agreed to in writing, software
|
|
Packit Service |
fa4841 |
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
Packit Service |
fa4841 |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
Packit Service |
fa4841 |
* See the License for the specific language governing permissions and
|
|
Packit Service |
fa4841 |
* limitations under the License.
|
|
Packit Service |
fa4841 |
*/
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#ifndef WINPR_DSPARSE_H
|
|
Packit Service |
fa4841 |
#define WINPR_DSPARSE_H
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#if defined(_WIN32) && !defined(_UWP)
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#include <winpr/windows.h>
|
|
Packit Service |
fa4841 |
#include <winpr/rpc.h>
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#include <ntdsapi.h>
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#else
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#include <winpr/crt.h>
|
|
Packit Service |
fa4841 |
#include <winpr/winpr.h>
|
|
Packit Service |
fa4841 |
#include <winpr/wtypes.h>
|
|
Packit Service |
fa4841 |
#include <winpr/error.h>
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
typedef enum
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
fa4841 |
DS_NAME_NO_FLAGS = 0x0,
|
|
Packit Service |
fa4841 |
DS_NAME_FLAG_SYNTACTICAL_ONLY = 0x1,
|
|
Packit Service |
fa4841 |
DS_NAME_FLAG_EVAL_AT_DC = 0x2,
|
|
Packit Service |
fa4841 |
DS_NAME_FLAG_GCVERIFY = 0x4,
|
|
Packit Service |
fa4841 |
DS_NAME_FLAG_TRUST_REFERRAL = 0x8
|
|
Packit Service |
fa4841 |
} DS_NAME_FLAGS;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
typedef enum
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
fa4841 |
DS_UNKNOWN_NAME = 0,
|
|
Packit Service |
fa4841 |
DS_FQDN_1779_NAME = 1,
|
|
Packit Service |
fa4841 |
DS_NT4_ACCOUNT_NAME = 2,
|
|
Packit Service |
fa4841 |
DS_DISPLAY_NAME = 3,
|
|
Packit Service |
fa4841 |
DS_UNIQUE_ID_NAME = 6,
|
|
Packit Service |
fa4841 |
DS_CANONICAL_NAME = 7,
|
|
Packit Service |
fa4841 |
DS_USER_PRINCIPAL_NAME = 8,
|
|
Packit Service |
fa4841 |
DS_CANONICAL_NAME_EX = 9,
|
|
Packit Service |
fa4841 |
DS_SERVICE_PRINCIPAL_NAME = 10,
|
|
Packit Service |
fa4841 |
DS_SID_OR_SID_HISTORY_NAME = 11,
|
|
Packit Service |
fa4841 |
DS_DNS_DOMAIN_NAME = 12
|
|
Packit Service |
fa4841 |
} DS_NAME_FORMAT;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
typedef enum
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
fa4841 |
DS_NAME_NO_ERROR = 0,
|
|
Packit Service |
fa4841 |
DS_NAME_ERROR_RESOLVING = 1,
|
|
Packit Service |
fa4841 |
DS_NAME_ERROR_NOT_FOUND = 2,
|
|
Packit Service |
fa4841 |
DS_NAME_ERROR_NOT_UNIQUE = 3,
|
|
Packit Service |
fa4841 |
DS_NAME_ERROR_NO_MAPPING = 4,
|
|
Packit Service |
fa4841 |
DS_NAME_ERROR_DOMAIN_ONLY = 5,
|
|
Packit Service |
fa4841 |
DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING = 6,
|
|
Packit Service |
fa4841 |
DS_NAME_ERROR_TRUST_REFERRAL = 7
|
|
Packit Service |
fa4841 |
} DS_NAME_ERROR;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
typedef enum
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
DS_SPN_DNS_HOST = 0,
|
|
Packit Service |
fa4841 |
DS_SPN_DN_HOST = 1,
|
|
Packit Service |
fa4841 |
DS_SPN_NB_HOST = 2,
|
|
Packit Service |
fa4841 |
DS_SPN_DOMAIN = 3,
|
|
Packit Service |
fa4841 |
DS_SPN_NB_DOMAIN = 4,
|
|
Packit Service |
fa4841 |
DS_SPN_SERVICE = 5
|
|
Packit Service |
fa4841 |
} DS_SPN_NAME_TYPE;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
typedef struct
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
DWORD status;
|
|
Packit Service |
fa4841 |
LPTSTR pDomain;
|
|
Packit Service |
fa4841 |
LPTSTR pName;
|
|
Packit Service |
fa4841 |
} DS_NAME_RESULT_ITEM, *PDS_NAME_RESULT_ITEM;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
typedef struct
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
DWORD cItems;
|
|
Packit Service |
fa4841 |
PDS_NAME_RESULT_ITEM rItems;
|
|
Packit Service |
fa4841 |
} DS_NAME_RESULT, *PDS_NAME_RESULT;
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#ifdef __cplusplus
|
|
Packit Service |
b1ea74 |
extern "C"
|
|
Packit Service |
b1ea74 |
{
|
|
Packit Service |
fa4841 |
#endif
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
b1ea74 |
WINPR_API DWORD DsCrackSpnW(LPCWSTR pszSpn, DWORD* pcServiceClass, LPWSTR ServiceClass,
|
|
Packit Service |
b1ea74 |
DWORD* pcServiceName, LPWSTR ServiceName, DWORD* pcInstanceName,
|
|
Packit Service |
b1ea74 |
LPWSTR InstanceName, USHORT* pInstancePort);
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
b1ea74 |
WINPR_API DWORD DsCrackSpnA(LPCSTR pszSpn, LPDWORD pcServiceClass, LPSTR ServiceClass,
|
|
Packit Service |
b1ea74 |
LPDWORD pcServiceName, LPSTR ServiceName, LPDWORD pcInstanceName,
|
|
Packit Service |
b1ea74 |
LPSTR InstanceName, USHORT* pInstancePort);
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#ifdef UNICODE
|
|
Packit Service |
b1ea74 |
#define DsCrackSpn DsCrackSpnW
|
|
Packit Service |
fa4841 |
#else
|
|
Packit Service |
b1ea74 |
#define DsCrackSpn DsCrackSpnA
|
|
Packit Service |
fa4841 |
#endif
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
b1ea74 |
WINPR_API DWORD DsMakeSpnW(LPCWSTR ServiceClass, LPCWSTR ServiceName, LPCWSTR InstanceName,
|
|
Packit Service |
b1ea74 |
USHORT InstancePort, LPCWSTR Referrer, DWORD* pcSpnLength,
|
|
Packit Service |
b1ea74 |
LPWSTR pszSpn);
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
b1ea74 |
WINPR_API DWORD DsMakeSpnA(LPCSTR ServiceClass, LPCSTR ServiceName, LPCSTR InstanceName,
|
|
Packit Service |
b1ea74 |
USHORT InstancePort, LPCSTR Referrer, DWORD* pcSpnLength,
|
|
Packit Service |
b1ea74 |
LPSTR pszSpn);
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#ifdef __cplusplus
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
#endif
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#ifdef UNICODE
|
|
Packit Service |
b1ea74 |
#define DsMakeSpn DsMakeSpnW
|
|
Packit Service |
fa4841 |
#else
|
|
Packit Service |
b1ea74 |
#define DsMakeSpn DsMakeSpnA
|
|
Packit Service |
fa4841 |
#endif
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#endif
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#endif /* WINPR_DSPARSE_H */
|