私のリモート サービスは Server 2008、32 ビットでは正常に動作しますが、Windows 7 マシンで実行しようとすると、StartService() が ERROR_FILE_NOT_FOUND で失敗します。
OpenSCManager()、CreateService()、QueryServiceStatus()、および OpenService() はすべて成功を返しますが、StartService() は失敗します。
SDK Samples\WinBase\Service から Service をコンパイルし、Win 7 マシンの Windows\system32 ディレクトリにコピーして、「-install」で実行しました。「SC start」で起動しようとすると、同じエラーが返されます。
SCからの情報は次のとおりです。
C:\Windows\System32>sc query SimpleService
SERVICE_NAME: SimpleService
TYPE : 10 WIN32_OWN_PROCESS
STATE : 1 STOPPED
WIN32_EXIT_CODE : 1077 (0x435)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
C:\Windows\System32>sc qc SimpleService
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: SimpleService
TYPE : 10 WIN32_OWN_PROCESS
START_TYPE : 3 DEMAND_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : C:\Windows\System32\ServiceSvc.exe
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : Simple Service
DEPENDENCIES :
SERVICE_START_NAME : LocalSystem
C:\Windows\System32>sc start SimpleService
[SC] StartService FAILED 2:
The system cannot find the file specified.
Win 7 マシンで xCmd.exe を実行したところ、同様のタイプのリモート サービスが実行され、ウイルスの警告が表示されましたが、それでも同じエラーが返されました。
許可の問題であれば、おそらく ERROR_ACCESS_DENIED が返されると確信しています。
私はネット全体を検索しましたが、なぜそれを返すのかについて何も見つかりません。