{
char *devicepath;
uint32_t size = 0;
- char **multi_sz = NULL;
- size_t multi_sz_len;
- uint16_t *multi_sz_buf;
+ const char **multi_sz = NULL;
+ DATA_BLOB blob;
if ((r->in.flags & CM_GETIDLIST_FILTER_SERVICE) &&
(!r->in.filter)) {
return WERR_CM_BUFFER_SMALL;
}
- multi_sz = talloc_zero_array(p->mem_ctx, char *, 2);
+ multi_sz = talloc_zero_array(p->mem_ctx, const char *, 2);
if (!multi_sz) {
return WERR_NOMEM;
}
multi_sz[0] = devicepath;
- multi_sz_len = regval_build_multi_sz(multi_sz, &multi_sz_buf);
- if (!multi_sz_len) {
+ if (!push_reg_multi_sz(multi_sz, &blob, multi_sz)) {
return WERR_NOMEM;
}
- if (*r->in.length < multi_sz_len/2) {
+ if (*r->in.length < blob.length/2) {
return WERR_CM_BUFFER_SMALL;
}
- memcpy(r->out.buffer, multi_sz_buf, multi_sz_len);
+ memcpy(r->out.buffer, blob.data, blob.length);
return WERR_OK;
}
struct PNP_GetDeviceRegProp *r)
{
char *ptr;
- REGVAL_CTR *values;
- REGISTRY_VALUE *val;
+ struct regval_ctr *values;
+ struct regval_blob *val;
switch( r->in.property ) {
case DEV_REGPROP_DESC: