Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
For ease of implementation and to allow re-use of the common data types and structure in other protocols, a full IDL is provided.
-
typedef unsigned short wchar_t; typedef void* ADCONNECTION_HANDLE; typedef int BOOL, *PBOOL, *LPBOOL; typedef unsigned char BYTE, *PBYTE, *LPBYTE; typedef BYTE BOOLEAN, *PBOOLEAN; typedef wchar_t WCHAR, *PWCHAR; typedef WCHAR* BSTR; typedef char CHAR, *PCHAR; typedef double DOUBLE; typedef unsigned long DWORD, *PDWORD, *LPDWORD; typedef unsigned int DWORD32; typedef unsigned __int64 DWORD64, *PDWORD64; typedef unsigned __int64 ULONGLONG; typedef ULONGLONG DWORDLONG, *PDWORDLONG; typedef unsigned long error_status_t; typedef float FLOAT; typedef unsigned char UCHAR, *PUCHAR; typedef short SHORT; typedef void* HANDLE; typedef DWORD HCALL; typedef int INT, *LPINT; typedef signed char INT8; typedef signed short INT16; typedef signed int INT32; typedef signed __int64 INT64; typedef void* LDAP_UDP_HANDLE; typedef const wchar_t* LMCSTR; typedef WCHAR* LMSTR; typedef long LONG, *PLONG, *LPLONG; typedef signed __int64 LONGLONG; typedef LONG HRESULT; typedef __int3264 LONG_PTR; typedef unsigned __int3264 ULONG_PTR; typedef signed int LONG32; typedef signed __int64 LONG64, *PLONG64; typedef const char* LPCSTR; typedef const void* LPCVOID; typedef const wchar_t* LPCWSTR; typedef char* PSTR, *LPSTR; typedef wchar_t* LPWSTR, *PWSTR; typedef DWORD NET_API_STATUS; typedef long NTSTATUS; typedef [context_handle] void* PCONTEXT_HANDLE; typedef [ref] PCONTEXT_HANDLE* PPCONTEXT_HANDLE; typedef unsigned __int64 QWORD; typedef void* RPC_BINDING_HANDLE; typedef UCHAR* STRING; typedef unsigned int UINT; typedef unsigned char UINT8; typedef unsigned short UINT16; typedef unsigned int UINT32; typedef unsigned __int64 UINT64; typedef unsigned long ULONG, *PULONG; typedef ULONG_PTR DWORD_PTR; typedef ULONG_PTR SIZE_T; typedef unsigned int ULONG32; typedef unsigned __int64 ULONG64; typedef wchar_t UNICODE; typedef unsigned short USHORT; typedef void VOID, *PVOID, *LPVOID; typedef unsigned short WORD, *PWORD, *LPWORD; typedef struct _FILETIME { DWORD dwLowDateTime; DWORD dwHighDateTime; } FILETIME, *PFILETIME, *LPFILETIME; typedef struct _GUID { unsigned long Data1; unsigned short Data2; unsigned short Data3; byte Data4[8]; } GUID, UUID, *PGUID; typedef struct _LARGE_INTEGER { signed __int64 QuadPart; } LARGE_INTEGER, *PLARGE_INTEGER; typedef struct _EVENT_DESCRIPTOR { USHORT Id; UCHAR Version; UCHAR Channel; UCHAR Level; UCHAR Opcode; USHORT Task; ULONGLONG Keyword; } EVENT_DESCRIPTOR, *PEVENT_DESCRIPTOR, *PCEVENT_DESCRIPTOR; typedef struct _EVENT_HEADER { USHORT Size; USHORT HeaderType; USHORT Flags; USHORT EventProperty; ULONG ThreadId; ULONG ProcessId; LARGE_INTEGER TimeStamp; GUID ProviderId; EVENT_DESCRIPTOR EventDescriptor; union { struct { ULONG KernelTime; ULONG UserTime; }; ULONG64 ProcessorTime; }; GUID ActivityId; } EVENT_HEADER, *PEVENT_HEADER; typedef DWORD LCID; typedef struct _LUID { DWORD LowPart; LONG HighPart; } LUID, *PLUID; typedef struct _MULTI_SZ { wchar_t* Value; DWORD nChar; } MULTI_SZ; typedef struct _RPC_UNICODE_STRING { unsigned short Length; unsigned short MaximumLength; [size_is(MaximumLength/2), length_is(Length/2)] WCHAR* Buffer; } RPC_UNICODE_STRING, *PRPC_UNICODE_STRING; typedef struct _SERVER_INFO_100 { DWORD sv100_platform_id; [string] wchar_t* sv100_name; } SERVER_INFO_100, *PSERVER_INFO_100, *LPSERVER_INFO_100; typedef struct _SERVER_INFO_101 { DWORD sv101_platform_id; [string] wchar_t* sv101_name; DWORD sv101_version_major; DWORD sv101_version_minor; DWORD sv101_version_type; [string] wchar_t* sv101_comment; } SERVER_INFO_101, *PSERVER_INFO_101, *LPSERVER_INFO_101; typedef struct _SYSTEMTIME { WORD wYear; WORD wMonth; WORD wDayOfWeek; WORD wDay; WORD wHour; WORD wMinute; WORD wSecond; WORD wMilliseconds; } SYSTEMTIME, *PSYSTEMTIME; typedef struct _UINT128 { UINT64 lower; UINT64 upper; } UINT128, *PUINT128; typedef struct _ULARGE_INTEGER { unsigned __int64 QuadPart; } ULARGE_INTEGER, *PULARGE_INTEGER; typedef struct _RPC_SID_IDENTIFIER_AUTHORITY { byte Value[6]; } RPC_SID_IDENTIFIER_AUTHORITY; typedef DWORD ACCESS_MASK; typedef ACCESS_MASK *PACCESS_MASK; typedef struct _OBJECT_TYPE_LIST { WORD Level; ACCESS_MASK Remaining; GUID* ObjectType; } OBJECT_TYPE_LIST, *POBJECT_TYPE_LIST; typedef struct _ACE_HEADER { UCHAR AceType; UCHAR AceFlags; USHORT AceSize; } ACE_HEADER, *PACE_HEADER; typedef struct _SYSTEM_MANDATORY_LABEL_ACE { ACE_HEADER Header; ACCESS_MASK Mask; DWORD SidStart; } SYSTEM_MANDATORY_LABEL_ACE, *PSYSTEM_MANDATORY_LABEL_ACE; typedef struct _TOKEN_MANDATORY_POLICY { DWORD Policy; } TOKEN_MANDATORY_POLICY, *PTOKEN_MANDATORY_POLICY; typedef struct _MANDATORY_INFORMATION { ACCESS_MASK AllowedAccess; BOOLEAN WriteAllowed; BOOLEAN ReadAllowed; BOOLEAN ExecuteAllowed; TOKEN_MANDATORY_POLICY MandatoryPolicy; } MANDATORY_INFORMATION, *PMANDATORY_INFORMATION; typedef struct _CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_RELATIVE { DWORD Length; BYTE OctetString[]; } CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_RELATIVE, *PCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_RELATIVE; typedef struct _CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 { DWORD Name; WORD ValueType; WORD Reserved; DWORD Flags; DWORD ValueCount; union { PLONG64 pInt64[]; PDWORD64 pUint64[]; PWSTR ppString[]; PCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_RELATIVE pOctetString[]; } Values; } CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1, *PCLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1; typedef DWORD SECURITY_INFORMATION, *PSECURITY_INFORMATION; typedef struct _RPC_SID { unsigned char Revision; unsigned char SubAuthorityCount; RPC_SID_IDENTIFIER_AUTHORITY IdentifierAuthority; [size_is(SubAuthorityCount)] unsigned long SubAuthority[]; } RPC_SID, *PRPC_SID, *PSID; typedef struct _ACL { unsigned char AclRevision; unsigned char Sbz1; unsigned short AclSize; unsigned short AceCount; unsigned short Sbz2; } ACL, *PACL; typedef struct _SECURITY_DESCRIPTOR { UCHAR Revision; UCHAR Sbz1; USHORT Control; PSID Owner; PSID Group; PACL Sacl; PACL Dacl; } SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR;