ntdll: Implement KeyNameInformation.
This commit is contained in:
parent
5a9564d938
commit
3259c81e10
|
@ -217,6 +217,7 @@ static NTSTATUS enumerate_key( HANDLE handle, int index, KEY_INFORMATION_CLASS i
|
||||||
case KeyBasicInformation: data_ptr = ((KEY_BASIC_INFORMATION *)info)->Name; break;
|
case KeyBasicInformation: data_ptr = ((KEY_BASIC_INFORMATION *)info)->Name; break;
|
||||||
case KeyFullInformation: data_ptr = ((KEY_FULL_INFORMATION *)info)->Class; break;
|
case KeyFullInformation: data_ptr = ((KEY_FULL_INFORMATION *)info)->Class; break;
|
||||||
case KeyNodeInformation: data_ptr = ((KEY_NODE_INFORMATION *)info)->Name; break;
|
case KeyNodeInformation: data_ptr = ((KEY_NODE_INFORMATION *)info)->Name; break;
|
||||||
|
case KeyNameInformation: data_ptr = ((KEY_NAME_INFORMATION *)info)->Name; break;
|
||||||
default:
|
default:
|
||||||
FIXME( "Information class %d not implemented\n", info_class );
|
FIXME( "Information class %d not implemented\n", info_class );
|
||||||
return STATUS_INVALID_PARAMETER;
|
return STATUS_INVALID_PARAMETER;
|
||||||
|
@ -280,6 +281,14 @@ static NTSTATUS enumerate_key( HANDLE handle, int index, KEY_INFORMATION_CLASS i
|
||||||
memcpy( info, &keyinfo, min( length, fixed_size ) );
|
memcpy( info, &keyinfo, min( length, fixed_size ) );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case KeyNameInformation:
|
||||||
|
{
|
||||||
|
KEY_NAME_INFORMATION keyinfo;
|
||||||
|
fixed_size = (char *)keyinfo.Name - (char *)&keyinfo;
|
||||||
|
keyinfo.NameLength = reply->namelen;
|
||||||
|
memcpy( info, &keyinfo, min( length, fixed_size ) );
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
*result_len = fixed_size + reply->total;
|
*result_len = fixed_size + reply->total;
|
||||||
if (length < *result_len) ret = STATUS_BUFFER_OVERFLOW;
|
if (length < *result_len) ret = STATUS_BUFFER_OVERFLOW;
|
||||||
|
|
|
@ -614,7 +614,8 @@ typedef enum _FSINFOCLASS {
|
||||||
typedef enum _KEY_INFORMATION_CLASS {
|
typedef enum _KEY_INFORMATION_CLASS {
|
||||||
KeyBasicInformation,
|
KeyBasicInformation,
|
||||||
KeyNodeInformation,
|
KeyNodeInformation,
|
||||||
KeyFullInformation
|
KeyFullInformation,
|
||||||
|
KeyNameInformation
|
||||||
} KEY_INFORMATION_CLASS;
|
} KEY_INFORMATION_CLASS;
|
||||||
|
|
||||||
typedef enum _KEY_VALUE_INFORMATION_CLASS {
|
typedef enum _KEY_VALUE_INFORMATION_CLASS {
|
||||||
|
@ -1068,6 +1069,11 @@ typedef struct _KEY_FULL_INFORMATION
|
||||||
WCHAR Class[1];
|
WCHAR Class[1];
|
||||||
} KEY_FULL_INFORMATION, *PKEY_FULL_INFORMATION;
|
} KEY_FULL_INFORMATION, *PKEY_FULL_INFORMATION;
|
||||||
|
|
||||||
|
typedef struct _KEY_NAME_INFORMATION {
|
||||||
|
ULONG NameLength;
|
||||||
|
WCHAR Name[1];
|
||||||
|
} KEY_NAME_INFORMATION, *PKEY_NAME_INFORMATION;
|
||||||
|
|
||||||
typedef struct _KEY_VALUE_ENTRY
|
typedef struct _KEY_VALUE_ENTRY
|
||||||
{
|
{
|
||||||
PUNICODE_STRING ValueName;
|
PUNICODE_STRING ValueName;
|
||||||
|
|
Loading…
Reference in New Issue