3.1.4.10 RNotifyBootConfigStatus (Opnum 9)

The RNotifyBootConfigStatus method reports the boot status to the SCM.

 DWORD RNotifyBootConfigStatus(
   [in, string, unique, range(0, SC_MAX_COMPUTER_NAME_LENGTH)] 
     SVCCTL_HANDLEW lpMachineName,
   [in] DWORD BootAcceptable
 );

lpMachineName: An SVCCTL_HANDLEW (section 2.2.3) data type that defines the handle that contains the UNICODE string name of the server to be notified.

BootAcceptable: A value that specifies whether the configuration used when booting the system is acceptable. MUST be one of the following values.

Value

Meaning

0x00000000 < value

Server saves the configuration as the last-known good configuration.

0x00000000

Server immediately reboots, using the previously saved last-known good configuration.

Return Values: The method returns ERROR_SUCCESS (0x00000000) on success; otherwise, it returns one of the following error codes.

Return value/code

Description

5

ERROR_ACCESS_DENIED

The caller does not have the SC_MANAGER_MODIFY_BOOT_CONFIG access rights granted in the SCM Security Descriptor.

1074

ERROR_ALREADY_RUNNING_LKG

The system is currently running with the last-known-good configuration.

1076

ERROR_BOOT_ALREADY_ACCEPTED

The BootAccepted field of the SCM on the target machine indicated that a successful call to RNotifyBootConfigStatus has already been made.

In response to this request from the client, for a successful operation the server MUST either save the current configuration as the last-known good configuration or MUST reboot the server by using the previously saved last-known good configuration based on the value specified in the BootAcceptable parameter of the client request.

In response to this request from the client, the server MUST set the BootAccepted field of the SCM to TRUE to indicate that a boot has been accepted. If the BootAccepted field of the SCM already indicates that a boot has been accepted, the server MUST fail the request with ERROR_BOOT_ALREADY_ACCEPTED.

If the BootAcceptable parameter is 0x00000000, the method does not return.