次の方法で共有


QueryServiceLockStatusA 関数 (winsvc.h)

[この関数は、Windows Vista の時点では効果がありません。]

指定したサービス コントロール マネージャー データベースのロック状態を取得します。

構文

BOOL QueryServiceLockStatusA(
  [in]            SC_HANDLE                    hSCManager,
  [out, optional] LPQUERY_SERVICE_LOCK_STATUSA lpLockStatus,
  [in]            DWORD                        cbBufSize,
  [out]           LPDWORD                      pcbBytesNeeded
);

パラメーター

[in] hSCManager

サービス コントロール マネージャー データベースへのハンドル。 OpenSCManager 関数は、このハンドルを返します。このハンドルには、SC_MANAGER_QUERY_LOCK_STATUSアクセス権が必要です。 詳細については、「サービスのセキュリティとアクセス権の」を参照してください。

[out, optional] lpLockStatus

指定したデータベースのロック状態を受け取る QUERY_SERVICE_LOCK_STATUS 構造体へのポインターと、そのメンバーが指す文字列が返されます。

[in] cbBufSize

lpLockStatus パラメーターが指すバッファーのサイズ (バイト単位)。

[out] pcbBytesNeeded

関数が失敗した場合に、すべてのロック状態情報を返すために必要なバイト数を受け取る変数へのポインター。

戻り値

関数が成功した場合、戻り値は 0 以外です。

関数が失敗した場合、戻り値は 0 です。 拡張エラー情報を取得するには、GetLastError呼び出します。

サービス コントロール マネージャーでは、次のエラー コードを設定できます。 その他のエラー コードは、サービス コントロール マネージャーによって呼び出されるレジストリ関数によって設定できます。

リターン コード 形容
ERROR_ACCESS_DENIED
ハンドルにSC_MANAGER_QUERY_LOCK_STATUSアクセス権がありません。
ERROR_INSUFFICIENT_BUFFER
lpLockStatus バッファーに収まるよりも多くのロック状態情報があります。 すべての情報を取得するために必要なバイト数は、pcbBytesNeeded パラメーターで返されます。 lpLockStatusには何も書き込みされません。
ERROR_INVALID_HANDLE
指定されたハンドルが無効です。

備考

QueryServiceLockStatus 関数は、指定したデータベースがロックされているかどうかを示す QUERY_SERVICE_LOCK_STATUS 構造体を返します。 データベースがロックされている場合、構造体はロックを所有するユーザーのアカウント名と、ロックが保持されている時間を提供します。

プロセスは、LockServiceDatabase 関数を呼び出して、サービス コントロール マネージャーのデータベース ロックの所有権を取得し、ロックを解放する UnlockServiceDatabase 関数を取得します。

手記

winsvc.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして QueryServiceLockStatus を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows XP [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2003 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー winsvc.h (Windows.h を含む)
ライブラリ Advapi32.lib
DLL Advapi32.dll

関連項目

LockServiceDatabase の

OpenSCManager

QUERY_SERVICE_LOCK_STATUS

サービス構成

サービス関数の

UnlockServiceDatabase の