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 13 typedef const void *FormatInfoRef; 14 #define INVALID_FRAGMENT_ID 0 15 16 typedef unsigned __int8 NDR64_UINT8; 17 typedef unsigned __int16 NDR64_UINT16; 18 typedef unsigned __int32 NDR64_UINT32; 19 __MINGW_EXTENSION typedef unsigned __int64 NDR64_UINT64; 20 21 typedef __int8 NDR64_INT8; 22 typedef __int16 NDR64_INT16; 23 typedef __int32 NDR64_INT32; 24 __MINGW_EXTENSION typedef __int64 NDR64_INT64; 25 26 typedef NDR64_UINT8 NDR64_FORMAT_CHAR; 27 typedef const void *PNDR64_FORMAT; 28 typedef NDR64_UINT8 NDR64_ALIGNMENT; 29 typedef 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__) 49 typedef NDR64_INT32 NDR64_PTR_WIRE_TYPE; 50 #else 51 typedef NDR64_INT64 NDR64_PTR_WIRE_TYPE; 52 #endif 53 54 #define NDR64_PTR_WIRE_ALIGN (sizeof(NDR64_PTR_WIRE_TYPE)-1) 55 56 typedef NDR64_UINT64 NDR64_WIRE_COUNT_TYPE; 57 #define NDR64_WIRE_COUNT_ALIGN (sizeof(NDR64_WIRE_COUNT_TYPE)-1) 58 59 typedef 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 82 typedef 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 94 typedef 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 105 typedef 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 123 typedef 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 130 typedef 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 138 typedef 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 149 typedef 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 156 typedef 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 163 typedef 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 171 typedef 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 179 typedef union _NDR64_BINDINGS { 180 NDR64_BIND_PRIMITIVE Primitive; 181 NDR64_BIND_GENERIC Generic; 182 NDR64_BIND_CONTEXT Context; 183 } NDR64_BINDINGS; 184 185 typedef struct _NDR64_BIND_AND_NOTIFY_EXTENSION { 186 NDR64_BIND_CONTEXT Binding; 187 NDR64_UINT16 NotifyIndex; 188 } NDR64_BIND_AND_NOTIFY_EXTENSION; 189 190 typedef 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 197 typedef 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 204 typedef struct _NDR64_POINTER_INSTANCE_HEADER_FORMAT { 205 NDR64_UINT32 Offset; 206 NDR64_UINT32 Reserved; 207 } NDR64_POINTER_INSTANCE_HEADER_FORMAT; 208 209 typedef 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 214 typedef 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 223 typedef 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 229 typedef struct _NDR64_IID_FLAGS { 230 NDR64_UINT8 ConstantIID : 1; 231 NDR64_UINT8 Reserved : 7; 232 } NDR64_IID_FLAGS; 233 234 typedef 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 241 typedef 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 248 typedef 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 259 typedef 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 267 typedef 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 276 typedef 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 287 typedef 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 299 typedef 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 306 typedef 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 313 typedef 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 320 typedef 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 327 typedef 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 334 typedef 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 344 typedef 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 354 typedef 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 361 typedef struct _NDR64_UNION_ARM { 362 NDR64_INT64 CaseValue; 363 PNDR64_FORMAT Type; 364 NDR64_UINT32 Reserved; 365 } NDR64_UNION_ARM; 366 367 typedef 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 378 typedef struct _NDR64_ARRAY_ELEMENT_INFO { 379 NDR64_UINT32 ElementMemSize; 380 PNDR64_FORMAT Element; 381 } NDR64_ARRAY_ELEMENT_INFO; 382 383 typedef 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 391 typedef 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 400 typedef 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 410 typedef 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 420 typedef 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 429 typedef 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 436 typedef 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 447 typedef 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 453 typedef struct _NDR64_NON_CONFORMANT_STRING_FORMAT { 454 NDR64_STRING_HEADER_FORMAT Header; 455 NDR64_UINT32 TotalSize; 456 } NDR64_NON_CONFORMANT_STRING_FORMAT; 457 458 typedef struct _NDR64_CONFORMANT_STRING_FORMAT { 459 NDR64_STRING_HEADER_FORMAT Header; 460 } NDR64_CONFORMANT_STRING_FORMAT; 461 462 typedef struct NDR64_SIZED_CONFORMANT_STRING_FORMAT { 463 NDR64_STRING_HEADER_FORMAT Header; 464 PNDR64_FORMAT SizeDescription; 465 } NDR64_SIZED_CONFORMANT_STRING_FORMAT; 466 467 typedef 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 471 typedef 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 478 typedef 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 485 typedef 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 492 typedef 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 499 typedef struct _NDR64_EXPR_NOOP { 500 NDR64_FORMAT_CHAR ExprType; 501 NDR64_UINT8 Size; 502 NDR64_UINT16 Reserved; 503 } NDR64_EXPR_NOOP; 504 505 typedef 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 512 typedef 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 523 typedef NDR64_TRANSMIT_AS_FORMAT NDR64_REPRESENT_AS_FORMAT; 524 525 typedef 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 532 typedef 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 543 typedef 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 550 typedef 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 560 typedef 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 575