summaryrefslogtreecommitdiffstats
path: root/public/sdk/inc/ntrpc.idl
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--public/sdk/inc/ntrpc.idl177
1 files changed, 177 insertions, 0 deletions
diff --git a/public/sdk/inc/ntrpc.idl b/public/sdk/inc/ntrpc.idl
new file mode 100644
index 000000000..5acfe60fd
--- /dev/null
+++ b/public/sdk/inc/ntrpc.idl
@@ -0,0 +1,177 @@
+/*++ BUILD Version: 0001 // Increment this if a change has global effects
+
+Copyright (c) 1989 Microsoft Corporation
+
+Module Name:
+
+ ntrpc.idl
+
+Abstract:
+
+ This module contains MIDL definitions of many NT data structures that
+ allow correct RPC'ing of those data strctures. Note that the primary
+ emphasis of this module is to provide definitions that can be typecast
+ to for RPC purposes. It is not intended that all fields be present
+ or correctly named/represented in these structures.
+
+
+ This file (NTRPC.IDL) is used to generate an include file (NTRPC.H).
+ All changes should be made to the .IDL file, not the .H file.
+
+
+Author:
+
+ Jim Kelly (JimK) 10-Jun-1991
+
+Revision History:
+
+
+
+--*/
+[
+ uuid(12345678-1234-ABCD-EF00-0123476518AB), //FIX, FIX Need real uuid
+ version(0.0),
+ endpoint("mscn_np:[\pipe\ntrpc]"),
+ pointer_default(unique)
+]
+
+interface ntrpc
+
+{
+#ifndef MIDL_PASS
+#define MIDL_PASS
+#endif //MIDL_PASS
+
+#ifndef _NTRPC_
+#define _NTRPC_
+
+import "ntimp.idl";
+
+
+
+
+//
+// Generic RPC Context Handle
+//
+
+typedef [context_handle] PVOID RPC_HANDLE, *PRPC_HANDLE;
+
+
+
+//
+// Unicode strings are counted 16-bit character strings.
+// The Length field and MaximumLength fields specify number of bytes,
+// (not wide-characters) in the string. So, this definition differs
+// a bit from the real unicode string type.
+//
+// The Length field does not include a null terminating character
+// if present.
+//
+//
+
+typedef struct _RPC_UNICODE_STRING {
+ USHORT Length;
+ USHORT MaximumLength;
+//FIX FIX [size_is(MaximumLength)] length_is[(MaximumLength)] PCHAR Buffer;
+ [size_is(MaximumLength)] PCHAR Buffer;
+} RPC_UNICODE_STRING, *PRPC_UNICODE_STRING;
+
+
+//
+// ANSI counted string
+//
+
+typedef struct _RPC_STRING {
+ USHORT Length;
+ USHORT MaximumLength;
+//FIX, FIX [size_is(MaximumLength)] length_is[(MaximumLength)] PCHAR Buffer;
+ [size_is(MaximumLength)] PCHAR Buffer;
+} RPC_STRING, *PRPC_STRING, RPC_ANSI_STRING, *PRPC_ANSI_STRING;
+
+
+
+
+
+
+//
+// RPC definition of the SID structure. Note the use of the [size_is()]
+// qualifier to specify the number of elements in the variable size
+// imbedded SubAuthorityCount array at runtime.
+//
+//
+
+typedef struct _RPC_SID {
+ UCHAR Revision;
+ UCHAR SubAuthorityCount;
+ SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
+ [size_is(SubAuthorityCount)] ULONG SubAuthority[*];
+} RPC_SID, *PRPC_SID, **PPRPC_SID;
+
+
+
+//
+// RPC definition of an ACL. This must be manually maintained to be the same
+// as the real ACL definition in ntseapi.h
+//
+
+typedef struct _RPC_ACL {
+ UCHAR AclRevision;
+ UCHAR Sbz1;
+ USHORT AclSize;
+ [size_is(AclSize - 4)] UCHAR Dummy1[*];
+} RPC_ACL, *PRPC_ACL;
+
+
+
+
+//
+// RPC'able security descriptor definition.
+//
+
+typedef struct _RPC_SECURITY_DESCRIPTOR {
+ UCHAR Revision;
+ UCHAR Sbz1;
+ SECURITY_DESCRIPTOR_CONTROL Control;
+ PRPC_SID Owner;
+ PRPC_SID Group;
+ PRPC_ACL Sacl;
+ PRPC_ACL Dacl;
+ } RPC_SECURITY_DESCRIPTOR, *PRPC_SECURITY_DESCRIPTOR;
+
+
+
+
+
+
+//
+// Internal Object Attributes structures. These differ from the regular
+// OBJECT_ATTRIBUTES structures in that the RootDirectory field is an
+// rpc handle.
+//
+//
+
+typedef struct _RPC_OBJECT_ATTRIBUTES_U {
+ ULONG Length;
+ RPC_HANDLE RootDirectory;
+ PRPC_UNICODE_STRING ObjectName;
+ ULONG Attributes;
+ PRPC_SECURITY_DESCRIPTOR SecurityDescriptor;
+ PSECURITY_QUALITY_OF_SERVICE SecurityQualityOfService;
+} RPC_OBJECT_ATTRIBUTES_U, *PRPC_OBJECT_ATTRIBUTES_U;
+
+typedef struct _RPC_OBJECT_ATTRIBUTES {
+ ULONG Length;
+ RPC_HANDLE RootDirectory;
+ PRPC_STRING ObjectName;
+ ULONG Attributes;
+ PRPC_SECURITY_DESCRIPTOR SecurityDescriptor;
+ PSECURITY_QUALITY_OF_SERVICE SecurityQualityOfService;
+} RPC_OBJECT_ATTRIBUTES, *PRPC_OBJECT_ATTRIBUTES;
+
+
+
+
+
+#endif // _NTRPC_
+
+}