95 lines
2.4 KiB
C
95 lines
2.4 KiB
C
/*++
|
|
|
|
Copyright (c) 1992 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
ConfDel.c
|
|
|
|
Abstract:
|
|
|
|
This module contains NetpDeleteConfigKeyword().
|
|
|
|
Author:
|
|
|
|
John Rogers (JohnRo) 11-Feb-1992
|
|
|
|
Environment:
|
|
|
|
Portable to any flat, 32-bit environment. (Uses Win32 typedefs.)
|
|
Requires ANSI C extensions: slash-slash comments, long external names.
|
|
|
|
Revision History:
|
|
|
|
11-Feb-1992 JohnRo
|
|
Created this routine.
|
|
14-Mar-1992 JohnRo
|
|
The Win32 registry version should call RegDeleteValue(), not
|
|
RegDeleteKey().
|
|
22-Mar-1992 JohnRo
|
|
Match revised return code (ERROR_CANTOPEN) from RegDeleteKey().
|
|
Added a little debug output if the delete fails (WinReg version).
|
|
21-May-1992 JohnRo
|
|
RAID 9826: Match revised winreg error codes.
|
|
Use PREFIX_ equates.
|
|
|
|
--*/
|
|
|
|
// These must be included first:
|
|
|
|
#include <nt.h> // NT definitions
|
|
#include <ntrtl.h> // NT Rtl structures
|
|
#include <nturtl.h> // NT Rtl structures
|
|
#include <windows.h> // Needed by <configp.h> and <winreg.h>
|
|
#include <lmcons.h> // NET_API_STATUS.
|
|
#include <netdebug.h> // (Needed by config.h)
|
|
|
|
|
|
// These may be included in any order:
|
|
|
|
#include <config.h> // My prototype, LPNET_CONFIG_HANDLE.
|
|
#include <configp.h> // NET_CONFIG_HANDLE.
|
|
#include <lmerr.h> // NERR_, ERROR_, and NO_ERROR equates.
|
|
#include <prefix.h> // PREFIX_ equates.
|
|
#include <tstr.h> // TCHAR_EOS.
|
|
#include <winreg.h>
|
|
|
|
|
|
// Delete a keyword and its value.
|
|
// Return NERR_CfgParamNotFound if the keyword isn't present.
|
|
NET_API_STATUS
|
|
NetpDeleteConfigKeyword (
|
|
IN LPNET_CONFIG_HANDLE ConfigHandle,
|
|
IN LPTSTR Keyword
|
|
)
|
|
{
|
|
NET_CONFIG_HANDLE * MyHandle = (LPVOID) ConfigHandle;
|
|
|
|
if (MyHandle == NULL) {
|
|
return (ERROR_INVALID_PARAMETER);
|
|
}
|
|
if ( (Keyword == NULL) || (*Keyword == TCHAR_EOS) ) {
|
|
return (ERROR_INVALID_PARAMETER);
|
|
}
|
|
|
|
{
|
|
LONG Error;
|
|
Error = RegDeleteValue (
|
|
MyHandle->WinRegKey, // section (key) handle
|
|
Keyword ); // value name
|
|
if (Error == ERROR_FILE_NOT_FOUND) {
|
|
return (NERR_CfgParamNotFound);
|
|
}
|
|
|
|
if (Error != ERROR_SUCCESS) {
|
|
NetpKdPrint(( PREFIX_NETLIB
|
|
"NetpConfigDeleteKeyword: unexpected status "
|
|
FORMAT_LONG ".\n", Error ));
|
|
|
|
NetpAssert( Error == ERROR_SUCCESS );
|
|
}
|
|
|
|
return Error;
|
|
}
|
|
}
|