39 DWORD dwControlsAccepted;
40 DWORD dwWin32ExitCode;
41 DWORD dwServiceSpecificExitCode;
177cpp_quote(
"#ifndef _SERVICE_PRESHUTDOWN_INFO_DEFINED_")
179typedef struct _SERVICE_PRESHUTDOWN_INFO {
180 DWORD dwPreshutdownTimeout;
181} SERVICE_PRESHUTDOWN_INFO, *LPSERVICE_PRESHUTDOWN_INFO;
184typedef struct _SC_RPC_CONFIG_INFOA {
186 [switch_is(dwInfoLevel)] union {
187 [case(1)] LPSERVICE_DESCRIPTIONA psd;
188 [case(2)] LPSERVICE_FAILURE_ACTIONSA psfa;
189 [case(3)] LPSERVICE_DELAYED_AUTO_START_INFO psda;
190 [case(4)] LPSERVICE_FAILURE_ACTIONS_FLAG psfaf;
191 [case(5)] LPSERVICE_SID_INFO pssid;
192 [case(6)] LPSERVICE_RPC_REQUIRED_PRIVILEGES_INFO psrp;
193 [case(7)] LPSERVICE_PRESHUTDOWN_INFO psps;
195} SC_RPC_CONFIG_INFOA, *LPSC_RPC_CONFIG_INFOA;
197typedef struct _SC_RPC_CONFIG_INFOW {
199 [switch_is(dwInfoLevel)] union {
200 [case(1)] LPSERVICE_DESCRIPTIONW psd;
201 [case(2)] LPSERVICE_FAILURE_ACTIONSW psfa;
202 [case(3)] LPSERVICE_DELAYED_AUTO_START_INFO psda;
203 [case(4)] LPSERVICE_FAILURE_ACTIONS_FLAG psfaf;
204 [case(5)] LPSERVICE_SID_INFO pssid;
205 [case(6)] LPSERVICE_RPC_REQUIRED_PRIVILEGES_INFO psrp;
206 [case(7)] LPSERVICE_PRESHUTDOWN_INFO psps;
208} SC_RPC_CONFIG_INFOW, *LPSC_RPC_CONFIG_INFOW;
210typedef struct _SERVICE_NOTIFY_STATUS_CHANGE_PARAMS_1 {
211 ULONGLONG ullThreadId;
213 UCHAR CallbackAddressArray[16];
214 UCHAR CallbackParamAddressArray[16];
215 SERVICE_STATUS_PROCESS ServiceStatus;
216 DWORD dwNotificationStatus;
218} SERVICE_NOTIFY_STATUS_CHANGE_PARAMS_1, *PSERVICE_NOTIFY_STATUS_CHANGE_PARAMS_1;
220typedef struct _SERVICE_NOTIFY_STATUS_CHANGE_PARAMS_2 {
221 ULONGLONG ullThreadId;
223 UCHAR CallbackAddressArray[16];
224 UCHAR CallbackParamAddressArray[16];
225 SERVICE_STATUS_PROCESS ServiceStatus;
226 DWORD dwNotificationStatus;
228 DWORD dwNotificationTriggered;
229 [string] PWSTR pszServiceNames;
230} SERVICE_NOTIFY_STATUS_CHANGE_PARAMS_2, *PSERVICE_NOTIFY_STATUS_CHANGE_PARAMS_2;
232typedef struct _SC_RPC_NOTIFY_PARAMS {
234 [switch_is(dwInfoLevel)] union {
235 [case(1)] PSERVICE_NOTIFY_STATUS_CHANGE_PARAMS_1 pStatusChangeParam1;
236 [case(2)] PSERVICE_NOTIFY_STATUS_CHANGE_PARAMS_2 pStatusChangeParam2;
238} SC_RPC_NOTIFY_PARAMS, *LPSC_RPC_NOTIFY_PARAMS;
240typedef struct _SC_RPC_NOTIFY_PARAMS_LIST {
241 BOUNDED_DWORD_4K cElements;
242 [size_is(cElements)] SC_RPC_NOTIFY_PARAMS NotifyParamsArray[];
243} SC_RPC_NOTIFY_PARAMS_LIST, *PSC_RPC_NOTIFY_PARAMS_LIST;
249[switch_type(DWORD)] union _SC_RPC_SERVICE_CONTROL_IN_PARAMSA {
250 [case(1)] PSERVICE_CONTROL_STATUS_REASON_IN_PARAMSA psrInParams;
251} SC_RPC_SERVICE_CONTROL_IN_PARAMSA, *LPSC_RPC_SERVICE_CONTROL_IN_PARAMSA;
254[switch_type(DWORD)] union _SC_RPC_SERVICE_CONTROL_IN_PARAMSW {
255 [case(1)] PSERVICE_CONTROL_STATUS_REASON_IN_PARAMSW psrInParams;
256} SC_RPC_SERVICE_CONTROL_IN_PARAMSW, *LPSC_RPC_SERVICE_CONTROL_IN_PARAMSW;
259[switch_type(DWORD)] union _SC_RPC_SERVICE_CONTROL_OUT_PARAMSA {
260 [case(1)] PSERVICE_CONTROL_STATUS_REASON_OUT_PARAMS psrOutParams;
261} SC_RPC_SERVICE_CONTROL_OUT_PARAMSA, *LPSC_RPC_SERVICE_CONTROL_OUT_PARAMSA;
264[switch_type(DWORD)] union _SC_RPC_SERVICE_CONTROL_OUT_PARAMSW {
265 [case(1)] PSERVICE_CONTROL_STATUS_REASON_OUT_PARAMS psrOutParams;
266} SC_RPC_SERVICE_CONTROL_OUT_PARAMSW, *LPSC_RPC_SERVICE_CONTROL_OUT_PARAMSW;
269typedef [v1_enum] enum _SC_STATUS_TYPE {
270 SC_STATUS_PROCESS_INFO = 0,
273typedef struct _SERVICE_CONTROL_STATUS_REASON_IN_PARAMSA {
275 [string] LPSTR pszComment;
276} SERVICE_CONTROL_STATUS_REASON_IN_PARAMSA, *LPSERVICE_CONTROL_STATUS_REASON_IN_PARAMSA;
278typedef struct _SERVICE_CONTROL_STATUS_REASON_IN_PARAMSW {
280 [string] LPWSTR pszComment;
281} SERVICE_CONTROL_STATUS_REASON_IN_PARAMSW, *LPSERVICE_CONTROL_STATUS_REASON_IN_PARAMSW;
283typedef struct _SERVICE_CONTROL_STATUS_REASON_OUT_PARAMS {
284 SERVICE_STATUS_PROCESS ServiceStatus;
285} SERVICE_CONTROL_STATUS_REASON_OUT_PARAMS, *LPSERVICE_CONTROL_STATUS_REASON_OUT_PARAMS;
287typedef SERVICE_NOTIFY_STATUS_CHANGE_PARAMS_2 SERVICE_NOTIFY_STATUS_CHANGE_PARAMS, *LPSERVICE_NOTIFY_STATUS_CHANGE_PARAMS;
291typedef struct _STRING_PTRSA {
292 [string] LPSTR StringPtr;
293} STRING_PTRSA, *PSTRING_PTRSA, *LPSTRING_PTRSA;
295typedef struct _STRING_PTRSW {
296 [string] LPWSTR StringPtr;
297} STRING_PTRSW, *PSTRING_PTRSW, *LPSTRING_PTRSW;
299typedef [v1_enum] enum _TAG_INFO_LEVEL {
300 TagInfoLevelNameFromTag = 1,
303typedef [v1_enum] enum _TAG_TYPE {
307typedef struct _TAG_INFO_NAME_FROM_TAG_IN_PARAMS {
310} TAG_INFO_NAME_FROM_TAG_IN_PARAMS, *PTAG_INFO_NAME_FROM_TAG_IN_PARAMS;
312typedef struct _TAG_INFO_NAME_FROM_TAG_OUT_PARAMS {
314 [string] LPWSTR pszName;
315} TAG_INFO_NAME_FROM_TAG_OUT_PARAMS, *PTAG_INFO_NAME_FROM_TAG_OUT_PARAMS;
317typedef struct _TAG_INFO_NAME_FROM_TAG
319 TAG_INFO_NAME_FROM_TAG_IN_PARAMS InParams;
320 TAG_INFO_NAME_FROM_TAG_OUT_PARAMS OutParams;
321} TAG_INFO_NAME_FROM_TAG, *PTAG_INFO_NAME_FROM_TAG;
324 uuid(367abb81-9844-35f1-ad32-98f038001003),
326 pointer_default(unique),
327 endpoint("ncacn_np:[\\pipe\\ntsvcs]")
335 [in, out] LPSC_RPC_HANDLE hSCObject);
341 [in] SC_RPC_HANDLE hService,
342 [in] DWORD dwControl,
343 [out] LPSERVICE_STATUS lpServiceStatus);
349 [in] SC_RPC_HANDLE hService);
354 RLockServiceDatabase(
355 [in] SC_RPC_HANDLE hSCManager,
356 [out] LPSC_RPC_LOCK lpLock);
361 RQueryServiceObjectSecurity(
362 [in] SC_RPC_HANDLE hService,
363 [in] SECURITY_INFORMATION dwSecurityInformation,
364 [out, size_is(cbBufSize)] LPBYTE lpSecurityDescriptor,
365 [in, range(0, 1024 * 256)] DWORD cbBufSize,
366 [out] LPBOUNDED_DWORD_256K pcbBytesNeeded);
371 RSetServiceObjectSecurity(
372 [in] SC_RPC_HANDLE hService,
373 [in] DWORD dwSecurityInformation,
374 [in, size_is(dwSecuityDescriptorSize)] LPBYTE lpSecurityDescriptor,
375 [in] DWORD dwSecuityDescriptorSize);
381 [in] SC_RPC_HANDLE hService,
382 [out] LPSERVICE_STATUS lpServiceStatus);
388 [in] RPC_SERVICE_STATUS_HANDLE hServiceStatus,
389 [in] LPSERVICE_STATUS lpServiceStatus);
394 RUnlockServiceDatabase(
395 [in, out] LPSC_RPC_LOCK Lock);
400 RNotifyBootConfigStatus(
401 [in, string, unique] SVCCTL_HANDLEW lpMachineName,
402 [in] DWORD BootAcceptable);
407 RI_ScSetServiceBitsW(
408 [in] RPC_SERVICE_STATUS_HANDLE hServiceStatus,
409 [in] DWORD dwServiceBits,
410 [in] BOOL bSetBitsOn,
411 [in] BOOL bUpdateImmediately,
412 [in, string, unique] LPWSTR lpString);
417 RChangeServiceConfigW(
418 [in] SC_RPC_HANDLE hService,
419 [in] DWORD dwServiceType,
420 [in] DWORD dwStartType,
421 [in] DWORD dwErrorControl,
422 [in, string, unique] LPWSTR lpBinaryPathName,
423 [in, string, unique] LPWSTR lpLoadOrderGroup,
424 [in, out, unique] LPDWORD lpdwTagId,
425 [in, unique, size_is(dwDependSize)] LPBYTE lpDependencies,
426 [in, range(0, SC_MAX_DEPEND_SIZE)] DWORD dwDependSize,
427 [in, string, unique] LPWSTR lpServiceStartName,
428 [in, unique, size_is(dwPwSize)] LPBYTE lpPassword,
429 [in, range(0, SC_MAX_PWD_SIZE)] DWORD dwPwSize,
430 [in, string, unique] LPWSTR lpDisplayName);
436 [in] SC_RPC_HANDLE hSCManager,
437 [in, string] LPCWSTR lpServiceName,
438 [in, string, unique] LPCWSTR lpDisplayName,
439 [in] DWORD dwDesiredAccess,
440 [in] DWORD dwServiceType,
441 [in] DWORD dwStartType,
442 [in] DWORD dwErrorControl,
443 [in, string] LPCWSTR lpBinaryPathName,
444 [in, string, unique] LPCWSTR lpLoadOrderGroup,
445 [in, out, unique] LPDWORD lpdwTagId,
446 [in, unique, size_is(dwDependSize)] LPBYTE lpDependencies,
447 [in, range(0, SC_MAX_DEPEND_SIZE)] DWORD dwDependSize,
448 [in, string, unique] LPCWSTR lpServiceStartName,
449 [in, unique, size_is(dwPwSize)] LPBYTE lpPassword,
450 [in, range(0, SC_MAX_PWD_SIZE)] DWORD dwPwSize,
451 [out] LPSC_RPC_HANDLE lpServiceHandle);
456 REnumDependentServicesW(
457 [in] SC_RPC_HANDLE hService,
458 [in] DWORD dwServiceState,
459 [out, size_is(cbBufSize)] LPBYTE lpServices,
460 [in, range(0, 1024*256)] DWORD cbBufSize,
461 [out] LPBOUNDED_DWORD_256K pcbBytesNeeded,
462 [out] LPBOUNDED_DWORD_256K lpServicesReturned);
467 REnumServicesStatusW(
468 [in] SC_RPC_HANDLE hSCManager,
469 [in] DWORD dwServiceType,
470 [in] DWORD dwServiceState,
471 [out, size_is(dwBufSize)] LPBYTE lpBuffer,
472 [in, range(0, 1024*256)] DWORD dwBufSize,
473 [out] LPBOUNDED_DWORD_256K pcbBytesNeeded,
474 [out] LPBOUNDED_DWORD_256K lpServicesReturned,
475 [in, out, unique] LPBOUNDED_DWORD_256K lpResumeHandle);
481 [in, string, unique] SVCCTL_HANDLEW lpMachineName,
482 [in, string, unique] LPWSTR lpDatabaseName,
483 [in] DWORD dwDesiredAccess,
484 [out] LPSC_RPC_HANDLE lpScHandle);
490 [in] SC_RPC_HANDLE hSCManager,
491 [in, string] LPWSTR lpServiceName,
492 [in] DWORD dwDesiredAccess,
493 [out] LPSC_RPC_HANDLE lpServiceHandle);
498 RQueryServiceConfigW(
499 [in] SC_RPC_HANDLE hService,
500 [out, size_is(cbBufSize)] LPBYTE lpServiceConfig,
501 /* FIXME: should be [out] LPQUERY_SERVICE_CONFIGW lpServiceConfig, */
502 [in, range(0, 1024*8)] DWORD cbBufSize,
503 [out] LPBOUNDED_DWORD_8K pcbBytesNeeded);
508 RQueryServiceLockStatusW(
509 [in] SC_RPC_HANDLE hSCManager,
510 [out, size_is(cbBufSize)] LPBYTE lpLockStatus,
511 /* FIXME: should be [out] LPQUERY_SERVICE_LOCK_STATUSW lpLockStatus, */
512 [in, range(0, 1024*4)] DWORD cbBufSize,
513 [out] LPBOUNDED_DWORD_4K pcbBytesNeeded);
519 [in] SC_RPC_HANDLE hService,
520 [in, range(0, SC_MAX_ARGUMENTS)] DWORD argc,
521 [in, unique, size_is(argc)] LPSTRING_PTRSW argv);
526 RGetServiceDisplayNameW(
527 [in] SC_RPC_HANDLE hSCManager,
528 [in, string] LPCWSTR lpServiceName,
529 [out, string, size_is(*lpcchBuffer + 1)] LPWSTR lpDisplayName,
530 [in, out] DWORD* lpcchBuffer);
536 [in] SC_RPC_HANDLE hSCManager,
537 [in, string] LPCWSTR lpDisplayName,
538 [out, string, size_is(*lpcchBuffer + 1)] LPWSTR lpServiceName,
539 [in, out] DWORD* lpcchBuffer);
544 RI_ScSetServiceBitsA(
545 [in] RPC_SERVICE_STATUS_HANDLE hServiceStatus,
546 [in] DWORD dwServiceBits,
547 [in] BOOL bSetBitsOn,
548 [in] BOOL bUpdateImmediately,
549 [in, string, unique] LPSTR lpString);
554 RChangeServiceConfigA(
555 [in] SC_RPC_HANDLE hService,
556 [in] DWORD dwServiceType,
557 [in] DWORD dwStartType,
558 [in] DWORD dwErrorControl,
559 [in, string, unique] LPSTR lpBinaryPathName,
560 [in, string, unique] LPSTR lpLoadOrderGroup,
561 [in, out, unique] LPDWORD lpdwTagId,
562 [in, unique, size_is(dwDependSize)] LPBYTE lpDependencies,
563 [in, range(0, SC_MAX_DEPEND_SIZE)] DWORD dwDependSize,
564 [in, string, unique] LPSTR lpServiceStartName,
565 [in, unique, size_is(dwPwSize)] LPBYTE lpPassword,
566 [in, range(0, SC_MAX_PWD_SIZE)] DWORD dwPwSize,
567 [in, string, unique] LPSTR lpDisplayName);
573 [in] SC_RPC_HANDLE hSCManager,
574 [in, string] LPSTR lpServiceName,
575 [in, string, unique] LPSTR lpDisplayName,
576 [in] DWORD dwDesiredAccess,
577 [in] DWORD dwServiceType,
578 [in] DWORD dwStartType,
579 [in] DWORD dwErrorControl,
580 [in, string] LPSTR lpBinaryPathName,
581 [in, string, unique] LPSTR lpLoadOrderGroup,
582 [in, out, unique] LPDWORD lpdwTagId,
583 [in, unique, size_is(dwDependSize)] LPBYTE lpDependencies,
584 [in, range(0, SC_MAX_DEPEND_SIZE)] DWORD dwDependSize,
585 [in, string, unique] LPSTR lpServiceStartName,
586 [in, unique, size_is(dwPwSize)] LPBYTE lpPassword,
587 [in, range(0, SC_MAX_PWD_SIZE)] DWORD dwPwSize,
588 [out] LPSC_RPC_HANDLE lpServiceHandle);
593 REnumDependentServicesA(
594 [in] SC_RPC_HANDLE hService,
595 [in] DWORD dwServiceState,
596 [out, size_is(cbBufSize)] LPBYTE lpServices,
597 [in, range(0, 1024*256)] DWORD cbBufSize,
598 [out] LPBOUNDED_DWORD_256K pcbBytesNeeded,
599 [out] LPBOUNDED_DWORD_256K lpServicesReturned);
604 REnumServicesStatusA(
605 [in] SC_RPC_HANDLE hSCManager,
606 [in] DWORD dwServiceType,
607 [in] DWORD dwServiceState,
608 [out, size_is(dwBufSize)] LPBYTE lpBuffer,
609 [in, range(0, 1024*256)] DWORD dwBufSize,
610 [out] LPBOUNDED_DWORD_256K pcbBytesNeeded,
611 [out] LPBOUNDED_DWORD_256K lpServicesReturned,
612 [in, out, unique] LPBOUNDED_DWORD_256K lpResumeHandle);
618 [in, string, unique] SVCCTL_HANDLEA lpMachineName,
619 [in, string, unique] LPSTR lpDatabaseName,
620 [in] DWORD dwDesiredAccess,
621 [out] LPSC_RPC_HANDLE lpScHandle);
627 [in] SC_RPC_HANDLE hSCManager,
628 [in, string] LPSTR lpServiceName,
629 [in] DWORD dwDesiredAccess,
630 [out] LPSC_RPC_HANDLE lpServiceHandle);
635 RQueryServiceConfigA(
636 [in] SC_RPC_HANDLE hService,
637 [out, size_is(cbBufSize)] LPBYTE lpServiceConfig,
638 /* FIXME: should be [out] LPQUERY_SERVICE_CONFIGA lpServiceConfig, */
639 [in, range(0, 1024*8)] DWORD cbBufSize,
640 [out] LPBOUNDED_DWORD_8K pcbBytesNeeded);
645 RQueryServiceLockStatusA(
646 [in] SC_RPC_HANDLE hSCManager,
647 [out, size_is(cbBufSize)] LPBYTE lpLockStatus,
648 /* FIXME: should be [out] LPQUERY_SERVICE_LOCK_STATUSA lpLockStatus, */
649 [in, range(0, 1024*4)] DWORD cbBufSize,
650 [out] LPBOUNDED_DWORD_4K pcbBytesNeeded);
656 [in] SC_RPC_HANDLE hService,
657 [in, range(0, SC_MAX_ARGUMENTS)] DWORD argc,
658 [in, unique, size_is(argc)] LPSTRING_PTRSA argv);
663 RGetServiceDisplayNameA(
664 [in] SC_RPC_HANDLE hSCManager,
665 [in, string] LPCSTR lpServiceName,
666 [out, string, size_is(*lpcchBuffer)] LPSTR lpDisplayName,
667 [in, out] LPBOUNDED_DWORD_4K lpcchBuffer);
673 [in] SC_RPC_HANDLE hSCManager,
674 [in, string] LPCSTR lpDisplayName,
675 [out, string, size_is(*lpcchBuffer)] LPSTR lpKeyName,
676 [in, out] LPBOUNDED_DWORD_4K lpcchBuffer);
681 RI_ScGetCurrentGroupStateW(
682 [in] SC_RPC_HANDLE hSCManager,
683 [in, string, unique] LPWSTR lpLoadOrderGroup,
684 [out] LPDWORD lpState);
690 [in] SC_RPC_HANDLE hSCManager,
691 [in] DWORD dwServiceType,
692 [in] DWORD dwServiceState,
693 [out, size_is(cbBufSize)] LPBYTE lpBuffer,
694 [in, range(0, 1024*256)] DWORD cbBufSize,
695 [out] LPBOUNDED_DWORD_256K pcbBytesNeeded,
696 [out] LPBOUNDED_DWORD_256K lpServicesReturned,
697 [in, out, unique] LPBOUNDED_DWORD_256K lpResumeIndex,
698 [in, string, unique] LPCWSTR pszGroupName);
703 RChangeServiceConfig2A(
704 [in] SC_RPC_HANDLE hService,
705 [in] SC_RPC_CONFIG_INFOA Info);
710 RChangeServiceConfig2W(
711 [in] SC_RPC_HANDLE hService,
712 [in] SC_RPC_CONFIG_INFOW Info);
717 RQueryServiceConfig2A(
718 [in] SC_RPC_HANDLE hService,
719 [in] DWORD dwInfoLevel,
720 [out, size_is(cbBufSize)] LPBYTE lpBuffer,
721 [in, range(0, 1024*8)] DWORD cbBufSize,
722 [out] LPBOUNDED_DWORD_8K pcbBytesNeeded);
727 RQueryServiceConfig2W(
728 [in] SC_RPC_HANDLE hService,
729 [in] DWORD dwInfoLevel,
730 [out, size_is(cbBufSize)] LPBYTE lpBuffer,
731 [in, range(0, 1024*8)] DWORD cbBufSize,
732 [out] LPBOUNDED_DWORD_8K pcbBytesNeeded);
737 RQueryServiceStatusEx(
738 [in] SC_RPC_HANDLE hService,
739 [in] SC_STATUS_TYPE InfoLevel,
740 [out, size_is(cbBufSize)] LPBYTE lpBuffer,
741 [in, range(0, 1024*8)] DWORD cbBufSize,
742 [out] LPBOUNDED_DWORD_8K pcbBytesNeeded);
747 REnumServicesStatusExA(
748 [in] SC_RPC_HANDLE hSCManager,
749 [in] SC_ENUM_TYPE InfoLevel,
750 [in] DWORD dwServiceType,
751 [in] DWORD dwServiceState,
752 [out, size_is(cbBufSize)] LPBYTE lpBuffer,
753 [in, range(0, 1024 * 256)] DWORD cbBufSize,
754 [out] LPBOUNDED_DWORD_256K pcbBytesNeeded,
755 [out] LPBOUNDED_DWORD_256K lpServicesReturned,
756 [in, out, unique] LPBOUNDED_DWORD_256K lpResumeIndex,
757 [in, string, unique] LPCSTR pszGroupName);
762 REnumServicesStatusExW(
763 [in] SC_RPC_HANDLE hSCManager,
764 [in] SC_ENUM_TYPE InfoLevel,
765 [in] DWORD dwServiceType,
766 [in] DWORD dwServiceState,
767 [out, size_is(cbBufSize)] LPBYTE lpBuffer,
768 [in, range(0, 1024 * 256)] DWORD cbBufSize,
769 [out] LPBOUNDED_DWORD_256K pcbBytesNeeded,
770 [out] LPBOUNDED_DWORD_256K lpServicesReturned,
771 [in, out, unique] LPBOUNDED_DWORD_256K lpResumeIndex,
772 [in, string, unique] LPCWSTR pszGroupName);
778 [in] handle_t BindingHandle); /* FIXME */
783 RCreateServiceWOW64A(
784 [in] handle_t BindingHandle,
785 [in, string] LPSTR lpServiceName,
786 [in, string, unique] LPSTR lpDisplayName,
787 [in] DWORD dwDesiredAccess,
788 [in] DWORD dwServiceType,
789 [in] DWORD dwStartType,
790 [in] DWORD dwErrorControl,
791 [in, string] LPSTR lpBinaryPathName,
792 [in, string, unique] LPSTR lpLoadOrderGroup,
793 [in, out, unique] LPDWORD lpdwTagId,
794 [in, unique, size_is(dwDependSize)] LPBYTE lpDependencies,
795 [in, range(0, SC_MAX_DEPEND_SIZE)] DWORD dwDependSize,
796 [in, string, unique] LPSTR lpServiceStartName,
797 [in, unique, size_is(dwPwSize)] LPBYTE lpPassword,
798 [in, range(0, SC_MAX_PWD_SIZE)] DWORD dwPwSize,
799 [out] LPSC_RPC_HANDLE lpServiceHandle);
804 RCreateServiceWOW64W(
805 [in] handle_t BindingHandle,
806 [in, string] LPWSTR lpServiceName,
807 [in, string, unique] LPWSTR lpDisplayName,
808 [in] DWORD dwDesiredAccess,
809 [in] DWORD dwServiceType,
810 [in] DWORD dwStartType,
811 [in] DWORD dwErrorControl,
812 [in, string] LPWSTR lpBinaryPathName,
813 [in, string, unique] LPWSTR lpLoadOrderGroup,
814 [in, out, unique] LPDWORD lpdwTagId,
815 [in, unique, size_is(dwDependSize)] LPBYTE lpDependencies,
816 [in, range(0, SC_MAX_DEPEND_SIZE)] DWORD dwDependSize,
817 [in, string, unique] LPWSTR lpServiceStartName,
818 [in, unique, size_is(dwPwSize)] LPBYTE lpPassword,
819 [in, range(0, SC_MAX_PWD_SIZE)] DWORD dwPwSize,
820 [out] LPSC_RPC_HANDLE lpServiceHandle);
825 RI_ScQueryServiceTagInfo(
826 [in] SC_RPC_HANDLE hSCManager,
827 [in] TAG_INFO_LEVEL dwInfoLevel,
828 [in] PTAG_INFO_NAME_FROM_TAG_IN_PARAMS * lpInParams,
829 [out] PTAG_INFO_NAME_FROM_TAG_OUT_PARAMS * lpOutParams);
834 RNotifyServiceStatusChange(
835 [in] SC_RPC_HANDLE hService,
836 [in] SC_RPC_NOTIFY_PARAMS NotifyParams,
837 [in] GUID* pClientProcessGuid,
838 [out] GUID* pSCMProcessGuid,
839 [out] PBOOL pfCreateRemoteQueue,
840 [out] LPSC_NOTIFY_RPC_HANDLE phNotify);
846 [in] SC_NOTIFY_RPC_HANDLE hNotify,
847 [out] PSC_RPC_NOTIFY_PARAMS_LIST *ppNotifyParams);
853 [in, out] LPSC_NOTIFY_RPC_HANDLE phNotify,
854 [out] PBOOL pfApcFired);
860 [in] SC_RPC_HANDLE hService,
861 [in] DWORD dwControl,
862 [in] DWORD dwInfoLevel/*,
863 [in, switch_is(dwInfoLevel)] PSC_RPC_SERVICE_CONTROL_IN_PARAMSA pControlInParams,
864 [out, switch_is(dwInfoLevel)] PSC_RPC_SERVICE_CONTROL_IN_PARAMSA pControlOutParams*/);
870 [in] SC_RPC_HANDLE hService,
871 [in] DWORD dwControl,
872 [in] DWORD dwInfoLevel/*,
873 [in, switch_is(dwInfoLevel)] PSC_RPC_SERVICE_CONTROL_IN_PARAMSW pControlInParams,
874 [out, switch_is(dwInfoLevel)] PSC_RPC_SERVICE_CONTROL_IN_PARAMSW pControlOutParams*/);
880 [in] handle_t BindingHandle); /* FIXME */
885 RI_ScValidatePnPService(
886 [in] SC_RPC_HANDLE hService,
887 [in, string] LPWSTR pszServiceName,
888 [out] RPC_SERVICE_STATUS_HANDLE *phServiceStatus);
893 ROpenServiceStatusHandle(
894 [in] handle_t BindingHandle); /* FIXME */
900 [in] handle_t BindingHandle); /* FIXME */
CD3D10_BUFFER_DESC D3D10_BUFFER_DESC cpp_quote(" ~CD3D10_BUFFER_DESC() {}") operator const D3D10_BUFFER_DESC &() const
SERVICE_STATUS ServiceStatus
SERVICE_STATUS ServiceStatus
SERVICE_STATUS_PROCESS ServiceStatusProcess
SERVICE_STATUS_PROCESS ServiceStatusProcess
LPWSTR lpServiceStartName
BOOL fFailureActionsOnNonCrashFailures
DWORD cbRequiredPrivileges
PBYTE pRequiredPrivileges
DWORD dwServiceSpecificExitCode
struct _QUERY_SERVICE_LOCK_STATUSW QUERY_SERVICE_LOCK_STATUSW
struct _SERVICE_DESCRIPTIONA SERVICE_DESCRIPTIONA
struct _ENUM_SERVICE_STATUS_PROCESSA ENUM_SERVICE_STATUS_PROCESSA
struct _SERVICE_FAILURE_ACTIONSW SERVICE_FAILURE_ACTIONSW
struct _ENUM_SERVICE_STATUSA * LPENUM_SERVICE_STATUSA
const unsigned short SC_MAX_ACCOUNT_NAME_LENGTH
struct _QUERY_SERVICE_LOCK_STATUSA QUERY_SERVICE_LOCK_STATUSA
struct _ENUM_SERVICE_STATUSW * LPENUM_SERVICE_STATUSW
const unsigned short SC_MAX_COMMENT_LENGTH
struct _SERVICE_STATUS * LPSERVICE_STATUS
BOUNDED_DWORD_256K * LPBOUNDED_DWORD_256K
const unsigned short SC_MAX_DEPEND_SIZE
BOUNDED_DWORD_8K * LPBOUNDED_DWORD_8K
struct _SERVICE_FAILURE_ACTIONSA * LPSERVICE_FAILURE_ACTIONSA
struct _SERVICE_DESCRIPTIONW SERVICE_DESCRIPTIONW
BOUNDED_DWORD_4K * LPBOUNDED_DWORD_4K
struct _SC_ACTION SC_ACTION
struct _QUERY_SERVICE_CONFIGW QUERY_SERVICE_CONFIGW
struct _SERVICE_DELAYED_AUTO_START_INFO SERVICE_DELAYED_AUTO_START_INFO
struct _SC_ACTION * LPSC_ACTION
struct _SERVICE_FAILURE_ACTIONS_FLAG SERVICE_FAILURE_ACTIONS_FLAG
ULONG_PTR RPC_SERVICE_STATUS_HANDLE
struct _ENUM_SERVICE_STATUS_PROCESSA * LPENUM_SERVICE_STATUS_PROCESSA
struct _QUERY_SERVICE_CONFIGA * LPQUERY_SERVICE_CONFIGA
struct _SERVICE_DESCRIPTIONW * LPSERVICE_DESCRIPTIONW
struct _SERVICE_DESCRIPTIONA * LPSERVICE_DESCRIPTIONA
SC_RPC_LOCK * LPSC_RPC_LOCK
struct _ENUM_SERVICE_STATUSW ENUM_SERVICE_STATUSW
const unsigned short SC_MAX_PATH_LENGTH
struct _ENUM_SERVICE_STATUS_PROCESSW ENUM_SERVICE_STATUS_PROCESSW
const unsigned short SC_MAX_NAME_LENGTH
struct _SERVICE_STATUS SERVICE_STATUS
struct _SERVICE_RPC_REQUIRED_PRIVILEGES_INFO SERVICE_RPC_REQUIRED_PRIVILEGES_INFO
struct _SERVICE_SID_INFO SERVICE_SID_INFO
const unsigned short SC_MAX_COMPUTER_NAME_LENGTH
struct _SERVICE_FAILURE_ACTIONS_FLAG * LPSERVICE_FAILURE_ACTIONS_FLAG
struct _SERVICE_DELAYED_AUTO_START_INFO * LPSERVICE_DELAYED_AUTO_START_INFO
struct _ENUM_SERVICE_STATUS_PROCESSW * LPENUM_SERVICE_STATUS_PROCESSW
SC_RPC_HANDLE * LPSC_RPC_HANDLE
struct _SERVICE_FAILURE_ACTIONSW * LPSERVICE_FAILURE_ACTIONSW
const unsigned short SC_MAX_PWD_SIZE
SC_NOTIFY_RPC_HANDLE * LPSC_NOTIFY_RPC_HANDLE
struct _QUERY_SERVICE_LOCK_STATUSA * LPQUERY_SERVICE_LOCK_STATUSA
enum _SC_ACTION_TYPE SC_ACTION_TYPE
struct _QUERY_SERVICE_CONFIGW * LPQUERY_SERVICE_CONFIGW
struct _SERVICE_STATUS_PROCESS * LPSERVICE_STATUS_PROCESS
const unsigned short SC_MAX_ARGUMENT_LENGTH
const unsigned int MAX_SERVICE_NAME_LENGTH
struct _SERVICE_FAILURE_ACTIONSA SERVICE_FAILURE_ACTIONSA
enum _SC_ENUM_TYPE SC_ENUM_TYPE
struct _QUERY_SERVICE_LOCK_STATUSW * LPQUERY_SERVICE_LOCK_STATUSW
struct _SERVICE_SID_INFO * LPSERVICE_SID_INFO
PVOID SC_NOTIFY_RPC_HANDLE
struct _SERVICE_STATUS_PROCESS SERVICE_STATUS_PROCESS
const unsigned short SC_MAX_ARGUMENTS
struct _ENUM_SERVICE_STATUSA ENUM_SERVICE_STATUSA
struct _SERVICE_RPC_REQUIRED_PRIVILEGES_INFO * LPSERVICE_RPC_REQUIRED_PRIVILEGES_INFO
struct _QUERY_SERVICE_CONFIGA QUERY_SERVICE_CONFIGA
enum _SC_ACTION_TYPE SC_ACTION_TYPE