master
  1/**
  2 * This file has no copyright assigned and is placed in the Public Domain.
  3 * This file is part of the mingw-w64 runtime package.
  4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5 */
  6#ifndef _NDR64TYPES_H
  7#define _NDR64TYPES_H
  8
  9#include <pshpack8.h>
 10
 11#include <guiddef.h>
 12
 13typedef const void *FormatInfoRef;
 14#define INVALID_FRAGMENT_ID 0
 15
 16typedef unsigned __int8 NDR64_UINT8;
 17typedef unsigned __int16 NDR64_UINT16;
 18typedef unsigned __int32 NDR64_UINT32;
 19__MINGW_EXTENSION typedef unsigned __int64 NDR64_UINT64;
 20
 21typedef __int8 NDR64_INT8;
 22typedef __int16 NDR64_INT16;
 23typedef __int32 NDR64_INT32;
 24__MINGW_EXTENSION typedef __int64 NDR64_INT64;
 25
 26typedef NDR64_UINT8 NDR64_FORMAT_CHAR;
 27typedef const void *PNDR64_FORMAT;
 28typedef NDR64_UINT8 NDR64_ALIGNMENT;
 29typedef NDR64_UINT32 NDR64_FORMAT_UINT32;
 30
 31#ifdef __ia64__
 32#define Ia64Axp(a,b) (a)
 33#elif (defined(_X86_) && !defined(__x86_64))
 34#define Ia64Axp(a,b) (a)
 35#elif defined(__x86_64)
 36#define Ia64Axp(a,b) (a)
 37#else
 38#error Unsupported platform
 39#endif
 40
 41#define NDR64_FC_EXPLICIT_HANDLE 0
 42#define NDR64_FC_BIND_GENERIC 1
 43#define NDR64_FC_BIND_PRIMITIVE 2
 44#define NDR64_FC_AUTO_HANDLE 3
 45#define NDR64_FC_CALLBACK_HANDLE 4
 46#define NDR64_FC_NO_HANDLE 5
 47
 48#if defined(__RPC_WIN32__)
 49typedef NDR64_INT32 NDR64_PTR_WIRE_TYPE;
 50#else
 51typedef NDR64_INT64 NDR64_PTR_WIRE_TYPE;
 52#endif
 53
 54#define NDR64_PTR_WIRE_ALIGN (sizeof(NDR64_PTR_WIRE_TYPE)-1)
 55
 56typedef NDR64_UINT64 NDR64_WIRE_COUNT_TYPE;
 57#define NDR64_WIRE_COUNT_ALIGN (sizeof(NDR64_WIRE_COUNT_TYPE)-1)
 58
 59typedef struct _NDR64_PROC_FLAGS {
 60  NDR64_UINT32 HandleType : 3;
 61  NDR64_UINT32 ProcType : 3;
 62  NDR64_UINT32 IsInterpreted : 2;
 63  NDR64_UINT32 IsObject : 1;
 64  NDR64_UINT32 IsAsync : 1;
 65  NDR64_UINT32 IsEncode : 1;
 66  NDR64_UINT32 IsDecode : 1;
 67  NDR64_UINT32 UsesFullPtrPackage : 1;
 68  NDR64_UINT32 UsesRpcSmPackage : 1;
 69  NDR64_UINT32 UsesPipes : 1;
 70  NDR64_UINT32 HandlesExceptions : 2;
 71  NDR64_UINT32 ServerMustSize : 1;
 72  NDR64_UINT32 ClientMustSize : 1;
 73  NDR64_UINT32 HasReturn : 1;
 74  NDR64_UINT32 HasComplexReturn : 1;
 75  NDR64_UINT32 ServerHasCorrelation : 1;
 76  NDR64_UINT32 ClientHasCorrelation : 1;
 77  NDR64_UINT32 HasNotify : 1;
 78  NDR64_UINT32 HasOtherExtensions : 1;
 79  NDR64_UINT32 Reserved : 7;
 80} NDR64_PROC_FLAGS;
 81
 82typedef struct _NDR64_RPC_FLAGS {
 83  NDR64_UINT16 Idempotent : 1;
 84  NDR64_UINT16 Broadcast : 1;
 85  NDR64_UINT16 Maybe : 1;
 86  NDR64_UINT16 Reserved1 : 5;
 87  NDR64_UINT16 Message : 1;
 88  NDR64_UINT16 Reserved2 : 4;
 89  NDR64_UINT16 InputSynchronous : 1;
 90  NDR64_UINT16 Asynchronous : 1;
 91  NDR64_UINT16 Reserved3 : 1;
 92} NDR64_RPC_FLAGS;
 93
 94typedef struct _NDR64_PROC_FORMAT {
 95  NDR64_UINT32 Flags;
 96  NDR64_UINT32 StackSize;
 97  NDR64_UINT32 ConstantClientBufferSize;
 98  NDR64_UINT32 ConstantServerBufferSize;
 99  NDR64_UINT16 RpcFlags;
100  NDR64_UINT16 FloatDoubleMask;
101  NDR64_UINT16 NumberOfParams;
102  NDR64_UINT16 ExtensionSize;
103} NDR64_PROC_FORMAT,*PNDR64_PROC_FORMAT;
104
105typedef struct _NDR64_PARAM_FLAGS {
106  NDR64_UINT16 MustSize : 1;
107  NDR64_UINT16 MustFree : 1;
108  NDR64_UINT16 IsPipe : 1;
109  NDR64_UINT16 IsIn : 1;
110  NDR64_UINT16 IsOut : 1;
111  NDR64_UINT16 IsReturn : 1;
112  NDR64_UINT16 IsBasetype : 1;
113  NDR64_UINT16 IsByValue : 1;
114  NDR64_UINT16 IsSimpleRef : 1;
115  NDR64_UINT16 IsDontCallFreeInst : 1;
116  NDR64_UINT16 SaveForAsyncFinish : 1;
117  NDR64_UINT16 IsPartialIgnore : 1;
118  NDR64_UINT16 IsForceAllocate : 1;
119  NDR64_UINT16 Reserved : 2;
120  NDR64_UINT16 UseCache : 1;
121} NDR64_PARAM_FLAGS;
122
123typedef struct _NDR64_PARAM_FORMAT {
124  PNDR64_FORMAT Type;
125  NDR64_PARAM_FLAGS Attributes;
126  NDR64_UINT16 Reserved;
127  NDR64_UINT32 StackOffset;
128} NDR64_PARAM_FORMAT,*PNDR64_PARAM_FORMAT;
129
130typedef struct _NDR64_RANGE_FORMAT {
131  NDR64_FORMAT_CHAR FormatCode;
132  NDR64_FORMAT_CHAR RangeType;
133  NDR64_UINT16 Reserved;
134  NDR64_INT64 MinValue;
135  NDR64_INT64 MaxValue;
136} NDR64_RANGE_FORMAT;
137
138typedef struct _NDR64_CONTEXT_HANDLE_FLAGS {
139  NDR64_UINT8 CannotBeNull : 1;
140  NDR64_UINT8 Serialize : 1;
141  NDR64_UINT8 NoSerialize : 1;
142  NDR64_UINT8 Strict : 1;
143  NDR64_UINT8 IsReturn : 1;
144  NDR64_UINT8 IsOut : 1;
145  NDR64_UINT8 IsIn : 1;
146  NDR64_UINT8 IsViaPointer : 1;
147} NDR64_CONTEXT_HANDLE_FLAGS;
148
149typedef struct _NDR64_CONTEXT_HANDLE_FORMAT {
150  NDR64_FORMAT_CHAR FormatCode;
151  NDR64_UINT8 ContextFlags;
152  NDR64_UINT8 RundownRoutineIndex;
153  NDR64_UINT8 Ordinal;
154} NDR64_CONTEXT_HANDLE_FORMAT;
155
156typedef struct _NDR64_BIND_PRIMITIVE {
157  NDR64_FORMAT_CHAR HandleType;
158  NDR64_UINT8 Flags;
159  NDR64_UINT16 StackOffset;
160  NDR64_UINT16 Reserved;
161} NDR64_BIND_PRIMITIVE;
162
163typedef struct _NDR64_BIND_GENERIC {
164  NDR64_FORMAT_CHAR HandleType;
165  NDR64_UINT8 Flags;
166  NDR64_UINT16 StackOffset;
167  NDR64_UINT8 RoutineIndex;
168  NDR64_UINT8 Size;
169} NDR64_BIND_GENERIC;
170
171typedef struct _NDR64_BIND_CONTEXT {
172  NDR64_FORMAT_CHAR HandleType;
173  NDR64_UINT8 Flags;
174  NDR64_UINT16 StackOffset;
175  NDR64_UINT8 RoutineIndex;
176  NDR64_UINT8 Ordinal;
177} NDR64_BIND_CONTEXT;
178
179typedef union _NDR64_BINDINGS {
180  NDR64_BIND_PRIMITIVE Primitive;
181  NDR64_BIND_GENERIC Generic;
182  NDR64_BIND_CONTEXT Context;
183} NDR64_BINDINGS;
184
185typedef struct _NDR64_BIND_AND_NOTIFY_EXTENSION {
186  NDR64_BIND_CONTEXT Binding;
187  NDR64_UINT16 NotifyIndex;
188} NDR64_BIND_AND_NOTIFY_EXTENSION;
189
190typedef struct _NDR64_POINTER_FORMAT {
191  NDR64_FORMAT_CHAR FormatCode;
192  NDR64_UINT8 Flags;
193  NDR64_UINT16 Reserved;
194  PNDR64_FORMAT Pointee;
195} NDR64_POINTER_FORMAT;
196
197typedef struct _NDR64_NO_REPEAT_FORMAT {
198  NDR64_FORMAT_CHAR FormatCode;
199  NDR64_UINT8 Flags;
200  NDR64_UINT16 Reserved1;
201  NDR64_UINT32 Reserved2;
202} NDR64_NO_REPEAT_FORMAT;
203
204typedef struct _NDR64_POINTER_INSTANCE_HEADER_FORMAT {
205  NDR64_UINT32 Offset;
206  NDR64_UINT32 Reserved;
207} NDR64_POINTER_INSTANCE_HEADER_FORMAT;
208
209typedef struct _NDR64_POINTER_REPEAT_FLAGS {
210  NDR64_UINT8 SetCorrMark : 1;
211  NDR64_UINT8 Reserved : 7;
212} NDR64_POINTER_REPEAT_FLAGS,*PNDR64_POINTER_REPEAT_FLAGS;
213
214typedef struct _NDR64_REPEAT_FORMAT {
215  NDR64_FORMAT_CHAR FormatCode;
216  NDR64_POINTER_REPEAT_FLAGS Flags;
217  NDR64_UINT16 Reserved;
218  NDR64_UINT32 Increment;
219  NDR64_UINT32 OffsetToArray;
220  NDR64_UINT32 NumberOfPointers;
221} NDR64_REPEAT_FORMAT,*PNDR64_REPEAT_FORMAT;
222
223typedef struct _NDR64_FIXED_REPEAT_FORMAT {
224  NDR64_REPEAT_FORMAT RepeatFormat;
225  NDR64_UINT32 Iterations;
226  NDR64_UINT32 Reserved;
227} NDR64_FIXED_REPEAT_FORMAT,*PNDR64_FIXED_REPEAT_FORMAT;
228
229typedef struct _NDR64_IID_FLAGS {
230  NDR64_UINT8 ConstantIID : 1;
231  NDR64_UINT8 Reserved : 7;
232} NDR64_IID_FLAGS;
233
234typedef struct _NDR64_CONSTANT_IID_FORMAT {
235  NDR64_FORMAT_CHAR FormatCode;
236  NDR64_UINT8 Flags;
237  NDR64_UINT16 Reserved;
238  GUID Guid;
239} NDR64_CONSTANT_IID_FORMAT;
240
241typedef struct _NDR64_IID_FORMAT {
242  NDR64_FORMAT_CHAR FormatCode;
243  NDR64_UINT8 Flags;
244  NDR64_UINT16 Reserved;
245  PNDR64_FORMAT IIDDescriptor;
246} NDR64_IID_FORMAT;
247
248typedef struct _NDR64_STRUCTURE_FLAGS {
249  NDR64_UINT8 HasPointerInfo : 1;
250  NDR64_UINT8 HasMemberInfo : 1;
251  NDR64_UINT8 HasConfArray : 1;
252  NDR64_UINT8 HasOrigPointerInfo : 1;
253  NDR64_UINT8 HasOrigMemberInfo : 1;
254  NDR64_UINT8 Reserved1 : 1;
255  NDR64_UINT8 Reserved2 : 1;
256  NDR64_UINT8 Reserved3 : 1;
257} NDR64_STRUCTURE_FLAGS;
258
259typedef struct _NDR64_STRUCTURE_HEADER_FORMAT {
260  NDR64_FORMAT_CHAR FormatCode;
261  NDR64_ALIGNMENT Alignment;
262  NDR64_STRUCTURE_FLAGS Flags;
263  NDR64_UINT8 Reserve;
264  NDR64_UINT32 MemorySize;
265} NDR64_STRUCTURE_HEADER_FORMAT;
266
267typedef struct _NDR64_CONF_STRUCTURE_HEADER_FORMAT {
268  NDR64_FORMAT_CHAR FormatCode;
269  NDR64_ALIGNMENT Alignment;
270  NDR64_STRUCTURE_FLAGS Flags;
271  NDR64_UINT8 Reserve;
272  NDR64_UINT32 MemorySize;
273  PNDR64_FORMAT ArrayDescription;
274} NDR64_CONF_STRUCTURE_HEADER_FORMAT;
275
276typedef struct _NDR64_BOGUS_STRUCTURE_HEADER_FORMAT {
277  NDR64_FORMAT_CHAR FormatCode;
278  NDR64_ALIGNMENT Alignment;
279  NDR64_STRUCTURE_FLAGS Flags;
280  NDR64_UINT8 Reserve;
281  NDR64_UINT32 MemorySize;
282  PNDR64_FORMAT OriginalMemberLayout;
283  PNDR64_FORMAT OriginalPointerLayout;
284  PNDR64_FORMAT PointerLayout;
285} NDR64_BOGUS_STRUCTURE_HEADER_FORMAT;
286
287typedef struct _NDR64_CONF_BOGUS_STRUCTURE_HEADER_FORMAT {
288  NDR64_FORMAT_CHAR FormatCode;
289  NDR64_ALIGNMENT Alignment;
290  NDR64_STRUCTURE_FLAGS Flags;
291  NDR64_UINT8 Dimensions;
292  NDR64_UINT32 MemorySize;
293  PNDR64_FORMAT OriginalMemberLayout;
294  PNDR64_FORMAT OriginalPointerLayout;
295  PNDR64_FORMAT PointerLayout;
296  PNDR64_FORMAT ConfArrayDescription;
297} NDR64_CONF_BOGUS_STRUCTURE_HEADER_FORMAT;
298
299typedef struct _NDR64_SIMPLE_MEMBER_FORMAT {
300  NDR64_FORMAT_CHAR FormatCode;
301  NDR64_UINT8 Reserved1;
302  NDR64_UINT16 Reserved2;
303  NDR64_UINT32 Reserved3;
304} NDR64_SIMPLE_MEMBER_FORMAT;
305
306typedef struct _NDR64_MEMPAD_FORMAT {
307  NDR64_FORMAT_CHAR FormatCode;
308  NDR64_UINT8 Reserve1;
309  NDR64_UINT16 MemPad;
310  NDR64_UINT32 Reserved2;
311} NDR64_MEMPAD_FORMAT;
312
313typedef struct _NDR64_EMBEDDED_COMPLEX_FORMAT {
314  NDR64_FORMAT_CHAR FormatCode;
315  NDR64_UINT8 Reserve1;
316  NDR64_UINT16 Reserve2;
317  PNDR64_FORMAT Type;
318} NDR64_EMBEDDED_COMPLEX_FORMAT;
319
320typedef struct _NDR64_BUFFER_ALIGN_FORMAT {
321  NDR64_FORMAT_CHAR FormatCode;
322  NDR64_ALIGNMENT Alignment;
323  NDR64_UINT16 Reserved;
324  NDR64_UINT32 Reserved2;
325} NDR64_BUFFER_ALIGN_FORMAT;
326
327typedef struct _NDR64_SIMPLE_REGION_FORMAT {
328  NDR64_FORMAT_CHAR FormatCode;
329  NDR64_ALIGNMENT Alignment;
330  NDR64_UINT16 RegionSize;
331  NDR64_UINT32 Reserved;
332} NDR64_SIMPLE_REGION_FORMAT;
333
334typedef struct _NDR64_ENCAPSULATED_UNION {
335  NDR64_FORMAT_CHAR FormatCode;
336  NDR64_UINT8 Alignment;
337  NDR64_UINT8 Flags;
338  NDR64_FORMAT_CHAR SwitchType;
339  NDR64_UINT32 MemoryOffset;
340  NDR64_UINT32 MemorySize;
341  NDR64_UINT32 Reserved;
342} NDR64_ENCAPSULATED_UNION;
343
344typedef struct _NDR64_NON_ENCAPSULATED_UNION {
345  NDR64_FORMAT_CHAR FormatCode;
346  NDR64_UINT8 Alignment;
347  NDR64_UINT8 Flags;
348  NDR64_FORMAT_CHAR SwitchType;
349  NDR64_UINT32 MemorySize;
350  PNDR64_FORMAT Switch;
351  NDR64_UINT32 Reserved;
352} NDR64_NON_ENCAPSULATED_UNION;
353
354typedef struct _NDR64_UNION_ARM_SELECTOR {
355  NDR64_UINT8 Reserved1;
356  NDR64_UINT8 Alignment;
357  NDR64_UINT16 Reserved2;
358  NDR64_UINT32 Arms;
359} NDR64_UNION_ARM_SELECTOR;
360
361typedef struct _NDR64_UNION_ARM {
362  NDR64_INT64 CaseValue;
363  PNDR64_FORMAT Type;
364  NDR64_UINT32 Reserved;
365} NDR64_UNION_ARM;
366
367typedef struct _NDR64_ARRAY_FLAGS {
368  NDR64_UINT8 HasPointerInfo : 1;
369  NDR64_UINT8 HasElementInfo : 1;
370  NDR64_UINT8 IsMultiDimensional : 1;
371  NDR64_UINT8 IsArrayofStrings : 1;
372  NDR64_UINT8 Reserved1 : 1;
373  NDR64_UINT8 Reserved2 : 1;
374  NDR64_UINT8 Reserved3 : 1;
375  NDR64_UINT8 Reserved4 : 1;
376} NDR64_ARRAY_FLAGS;
377
378typedef struct _NDR64_ARRAY_ELEMENT_INFO {
379  NDR64_UINT32 ElementMemSize;
380  PNDR64_FORMAT Element;
381} NDR64_ARRAY_ELEMENT_INFO;
382
383typedef struct _NDR64_FIX_ARRAY_HEADER_FORMAT {
384  NDR64_FORMAT_CHAR FormatCode;
385  NDR64_ALIGNMENT Alignment;
386  NDR64_ARRAY_FLAGS Flags;
387  NDR64_UINT8 Reserved;
388  NDR64_UINT32 TotalSize;
389} NDR64_FIX_ARRAY_HEADER_FORMAT;
390
391typedef struct _NDR64_CONF_ARRAY_HEADER_FORMAT {
392  NDR64_FORMAT_CHAR FormatCode;
393  NDR64_ALIGNMENT Alignment;
394  NDR64_ARRAY_FLAGS Flags;
395  NDR64_UINT8 Reserved;
396  NDR64_UINT32 ElementSize;
397  PNDR64_FORMAT ConfDescriptor;
398} NDR64_CONF_ARRAY_HEADER_FORMAT;
399
400typedef struct _NDR64_CONF_VAR_ARRAY_HEADER_FORMAT {
401  NDR64_FORMAT_CHAR FormatCode;
402  NDR64_ALIGNMENT Alignment;
403  NDR64_ARRAY_FLAGS Flags;
404  NDR64_UINT8 Reserved;
405  NDR64_UINT32 ElementSize;
406  PNDR64_FORMAT ConfDescriptor;
407  PNDR64_FORMAT VarDescriptor;
408} NDR64_CONF_VAR_ARRAY_HEADER_FORMAT;
409
410typedef struct _NDR64_VAR_ARRAY_HEADER_FORMAT {
411  NDR64_FORMAT_CHAR FormatCode;
412  NDR64_ALIGNMENT Alignment;
413  NDR64_ARRAY_FLAGS Flags;
414  NDR64_UINT8 Reserved;
415  NDR64_UINT32 TotalSize;
416  NDR64_UINT32 ElementSize;
417  PNDR64_FORMAT VarDescriptor;
418} NDR64_VAR_ARRAY_HEADER_FORMAT;
419
420typedef struct _NDR64_BOGUS_ARRAY_HEADER_FORMAT {
421  NDR64_FORMAT_CHAR FormatCode;
422  NDR64_ALIGNMENT Alignment;
423  NDR64_ARRAY_FLAGS Flags;
424  NDR64_UINT8 NumberDims;
425  NDR64_UINT32 NumberElements;
426  PNDR64_FORMAT Element;
427} NDR64_BOGUS_ARRAY_HEADER_FORMAT;
428
429typedef struct _NDR64_CONF_VAR_BOGUS_ARRAY_HEADER_FORMAT {
430  NDR64_BOGUS_ARRAY_HEADER_FORMAT FixedArrayFormat;
431  PNDR64_FORMAT ConfDescription;
432  PNDR64_FORMAT VarDescription;
433  PNDR64_FORMAT OffsetDescription;
434} NDR64_CONF_VAR_BOGUS_ARRAY_HEADER_FORMAT;
435
436typedef struct _NDR64_STRING_FLAGS {
437  NDR64_UINT8 IsSized : 1;
438  NDR64_UINT8 Reserved2 : 1;
439  NDR64_UINT8 Reserved3 : 1;
440  NDR64_UINT8 Reserved4 : 1;
441  NDR64_UINT8 Reserved5 : 1;
442  NDR64_UINT8 Reserved6 : 1;
443  NDR64_UINT8 Reserved7 : 1;
444  NDR64_UINT8 Reserved8 : 1;
445} NDR64_STRING_FLAGS;
446
447typedef struct NDR64_STRING_HEADER_FORMAT {
448  NDR64_FORMAT_CHAR FormatCode;
449  NDR64_STRING_FLAGS Flags;
450  NDR64_UINT16 ElementSize;
451} NDR64_STRING_HEADER_FORMAT;
452
453typedef struct _NDR64_NON_CONFORMANT_STRING_FORMAT {
454  NDR64_STRING_HEADER_FORMAT Header;
455  NDR64_UINT32 TotalSize;
456} NDR64_NON_CONFORMANT_STRING_FORMAT;
457
458typedef struct _NDR64_CONFORMANT_STRING_FORMAT {
459  NDR64_STRING_HEADER_FORMAT Header;
460} NDR64_CONFORMANT_STRING_FORMAT;
461
462typedef struct NDR64_SIZED_CONFORMANT_STRING_FORMAT {
463  NDR64_STRING_HEADER_FORMAT Header;
464  PNDR64_FORMAT SizeDescription;
465} NDR64_SIZED_CONFORMANT_STRING_FORMAT;
466
467typedef enum _tagEXPR_TOKEN {
468  FC_EXPR_START = 0,FC_EXPR_ILLEGAL = FC_EXPR_START,FC_EXPR_CONST32,FC_EXPR_CONST64,FC_EXPR_VAR,FC_EXPR_OPER,FC_EXPR_NOOP,FC_EXPR_END
469} EXPR_TOKEN;
470
471typedef struct _NDR64_EXPR_OPERATOR {
472  NDR64_FORMAT_CHAR ExprType;
473  NDR64_FORMAT_CHAR Operator;
474  NDR64_FORMAT_CHAR CastType;
475  NDR64_UINT8 Reserved;
476} NDR64_EXPR_OPERATOR;
477
478typedef struct _NDR64_EXPR_CONST32 {
479  NDR64_FORMAT_CHAR ExprType;
480  NDR64_FORMAT_CHAR Reserved;
481  NDR64_UINT16 Reserved1;
482  NDR64_UINT32 ConstValue;
483} NDR64_EXPR_CONST32;
484
485typedef struct _NDR64_EXPR_CONST64 {
486  NDR64_FORMAT_CHAR ExprType;
487  NDR64_FORMAT_CHAR Reserved;
488  NDR64_UINT16 Reserved1;
489  NDR64_INT64 ConstValue;
490} NDR64_EXPR_CONST64;
491
492typedef struct _NDR64_EXPR_VAR {
493  NDR64_FORMAT_CHAR ExprType;
494  NDR64_FORMAT_CHAR VarType;
495  NDR64_UINT16 Reserved;
496  NDR64_UINT32 Offset;
497} NDR64_EXPR_VAR;
498
499typedef struct _NDR64_EXPR_NOOP {
500  NDR64_FORMAT_CHAR ExprType;
501  NDR64_UINT8 Size;
502  NDR64_UINT16 Reserved;
503} NDR64_EXPR_NOOP;
504
505typedef struct _NDR64_TRANSMIT_AS_FLAGS {
506  NDR64_UINT8 PresentedTypeIsArray : 1;
507  NDR64_UINT8 PresentedTypeAlign4 : 1;
508  NDR64_UINT8 PresentedTypeAlign8 : 1;
509  NDR64_UINT8 Reserved : 5;
510} NDR64_TRANSMIT_AS_FLAGS;
511
512typedef struct _NDR64_TRANSMIT_AS_FORMAT {
513  NDR64_FORMAT_CHAR FormatCode;
514  NDR64_UINT8 Flags;
515  NDR64_UINT16 RoutineIndex;
516  NDR64_UINT16 TransmittedTypeWireAlignment;
517  NDR64_UINT16 MemoryAlignment;
518  NDR64_UINT32 PresentedTypeMemorySize;
519  NDR64_UINT32 TransmittedTypeBufferSize;
520  PNDR64_FORMAT TransmittedType;
521} NDR64_TRANSMIT_AS_FORMAT;
522
523typedef NDR64_TRANSMIT_AS_FORMAT NDR64_REPRESENT_AS_FORMAT;
524
525typedef struct _NDR64_USER_MARSHAL_FLAGS {
526  NDR64_UINT8 Reserved : 5;
527  NDR64_UINT8 IID : 1;
528  NDR64_UINT8 RefPointer : 1;
529  NDR64_UINT8 UniquePointer : 1;
530} NDR64_USER_MARSHAL_FLAGS;
531
532typedef struct _NDR64_USER_MARSHAL_FORMAT {
533  NDR64_FORMAT_CHAR FormatCode;
534  NDR64_UINT8 Flags;
535  NDR64_UINT16 RoutineIndex;
536  NDR64_UINT16 TransmittedTypeWireAlignment;
537  NDR64_UINT16 MemoryAlignment;
538  NDR64_UINT32 UserTypeMemorySize;
539  NDR64_UINT32 TransmittedTypeBufferSize;
540  PNDR64_FORMAT TransmittedType;
541} NDR64_USER_MARSHAL_FORMAT;
542
543typedef struct NDR64_PIPE_FLAGS {
544  NDR64_UINT8 Reserved1 : 5;
545  NDR64_UINT8 HasRange : 1;
546  NDR64_UINT8 BlockCopy : 1;
547  NDR64_UINT8 Reserved2 : 1;
548} NDR64_PIPE_FLAGS;
549
550typedef struct _NDR64_PIPE_FORMAT {
551  NDR64_FORMAT_CHAR FormatCode;
552  NDR64_UINT8 Flags;
553  NDR64_UINT8 Alignment;
554  NDR64_UINT8 Reserved;
555  PNDR64_FORMAT Type;
556  NDR64_UINT32 MemorySize;
557  NDR64_UINT32 BufferSize;
558} NDR64_PIPE_FORMAT;
559
560typedef struct _NDR64_RANGE_PIPE_FORMAT {
561  NDR64_FORMAT_CHAR FormatCode;
562  NDR64_UINT8 Flags;
563  NDR64_UINT8 Alignment;
564  NDR64_UINT8 Reserved;
565  PNDR64_FORMAT Type;
566  NDR64_UINT32 MemorySize;
567  NDR64_UINT32 BufferSize;
568  NDR64_UINT32 MinValue;
569  NDR64_UINT32 MaxValue;
570} NDR64_RANGE_PIPE_FORMAT;
571
572#include <poppack.h>
573
574#endif