diff options
Diffstat (limited to 'librpc/idl')
-rw-r--r-- | librpc/idl/drsuapi.idl | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/librpc/idl/drsuapi.idl b/librpc/idl/drsuapi.idl index e4343c91f9..e9d21607f7 100644 --- a/librpc/idl/drsuapi.idl +++ b/librpc/idl/drsuapi.idl @@ -1229,8 +1229,41 @@ interface drsuapi drsuapi_DsReplicaObjectListItem first_object; } drsuapi_DsAddEntryRequest2; + /* Buffer type is actually more + * like a semi Flags + * Ref: DRS_SecBuffer, [MS-DRSR]: 5.41*/ + typedef [v1_enum,noprint] enum { + DRSUAPI_SECBUFFER_EMPTY = 0x00000000, + DRSUAPI_SECBUFFER_DATA = 0x00000001, + DRSUAPI_SECBUFFER_TOKEN = 0x00000002, + DRSUAPI_SECBUFFER_PKG_PARAMS = 0x00000003, + DRSUAPI_SECBUFFER_MISSING = 0x00000004, + DRSUAPI_SECBUFFER_EXTRA = 0x00000005, + DRSUAPI_SECBUFFER_STREAM_TRAILER = 0x00000006, + DRSUAPI_SECBUFFER_STREAM_HEADER = 0x00000007, + DRSUAPI_SECBUFFER_READONLY = 0x80000000 + } drsuapi_SecBufferType; + + typedef struct { + [range(0,10000)] uint32 buf_size; + drsuapi_SecBufferType buf_type; + [size_is(buf_size)] uint8 *buffer; + } drsuapi_SecBuffer; + + typedef struct { + [value(0)] uint32 version; + [range(0,10000)] uint32 buff_count; + [size_is(buff_count)] drsuapi_SecBuffer *buffers; + } drsuapi_SecBufferDesc; + + typedef struct { + drsuapi_DsReplicaObjectListItem first_object; + drsuapi_SecBufferDesc *client_creds; + } drsuapi_DsAddEntryRequest3; + typedef [switch_type(uint32)] union { [case(2)] drsuapi_DsAddEntryRequest2 req2; + [case(3)] drsuapi_DsAddEntryRequest3 req3; } drsuapi_DsAddEntryRequest; /* Generic extended error info |