mirror of
https://github.com/ipxe/sanbootconf.git
synced 2025-05-09 01:21:13 +08:00
[driver] Add reg_fetch_dword()
Signed-off-by: Michael Brown <mbrown@fensystems.co.uk>
This commit is contained in:
parent
52725755ef
commit
a8a80f2f96
@ -251,6 +251,40 @@ NTSTATUS reg_fetch_multi_sz ( HANDLE reg_key, LPCWSTR value_name,
|
||||
return status;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch registry dword value
|
||||
*
|
||||
* @v reg_key Registry key
|
||||
* @v value_name Registry value name
|
||||
* @v value Dword value to fill in
|
||||
* @ret ntstatus NT status
|
||||
*/
|
||||
NTSTATUS reg_fetch_dword ( HANDLE reg_key, LPCWSTR value_name, ULONG *value ) {
|
||||
PKEY_VALUE_PARTIAL_INFORMATION kvi;
|
||||
NTSTATUS status;
|
||||
|
||||
/* Fetch key value information */
|
||||
status = reg_fetch_kvi ( reg_key, value_name, &kvi );
|
||||
if ( ! NT_SUCCESS ( status ) )
|
||||
goto err_reg_fetch_kvi;
|
||||
|
||||
/* Sanity check */
|
||||
if ( kvi->DataLength != sizeof ( *value ) ) {
|
||||
DbgPrint ( "Bad size %x for dword \"%S\"\n",
|
||||
kvi->DataLength, value_name );
|
||||
status = STATUS_UNSUCCESSFUL;
|
||||
goto err_datalength;
|
||||
}
|
||||
|
||||
/* Copy value */
|
||||
RtlCopyMemory ( value, kvi->Data, sizeof ( *value ) );
|
||||
|
||||
err_datalength:
|
||||
ExFreePool ( kvi );
|
||||
err_reg_fetch_kvi:
|
||||
return status;
|
||||
}
|
||||
|
||||
/**
|
||||
* Store registry string value
|
||||
*
|
||||
@ -348,7 +382,7 @@ NTSTATUS reg_store_multi_sz ( HANDLE reg_key, LPCWSTR value_name, ... ) {
|
||||
*
|
||||
* @v reg_key Registry key
|
||||
* @v value_name Registry value name
|
||||
* @v value String value to store, or NULL
|
||||
* @v value Dword value to store
|
||||
* @ret ntstatus NT status
|
||||
*/
|
||||
NTSTATUS reg_store_dword ( HANDLE reg_key, LPCWSTR value_name, ULONG value ) {
|
||||
|
@ -27,6 +27,8 @@ extern NTSTATUS reg_fetch_sz ( HANDLE reg_key, LPCWSTR value_name,
|
||||
LPWSTR *value );
|
||||
extern NTSTATUS reg_fetch_multi_sz ( HANDLE reg_key, LPCWSTR value_name,
|
||||
LPWSTR **values );
|
||||
extern NTSTATUS reg_fetch_dword ( HANDLE reg_key, LPCWSTR value_name,
|
||||
ULONG *value );
|
||||
extern NTSTATUS reg_store_sz ( HANDLE reg_key, LPCWSTR value_name,
|
||||
LPWSTR value );
|
||||
extern NTSTATUS reg_store_multi_sz ( HANDLE reg_key, LPCWSTR value_name, ... );
|
||||
|
Loading…
x
Reference in New Issue
Block a user