CertControlStore

使用中のキャッシュされたストアの内容と、永続化ストレージ上のその内容との間に差異がある場合に、アプリケーションに通知できるようにする。

CertControlStore hCertStore, dwFlags, dwCtrlType, pvCtrlPara

hCertStore : [int] 証明書ストアのハンドル。
dwFlags : [int] 
dwCtrlType : [int] CertControlStore が実行する制御動作。pvCtrlPara および dwFlags の解釈は dwCtrlType の値に依存する。現在、次の動作が定義されている。
pvCtrlPara : [intptr] dwCtrlType が CERT_STORE_NOTIFY_CHANGE の場合、pvCtrlPara はハンドルのアドレスに設定し、システムはストアの永続化状態からの変更を検出したときにそのハンドル上で通知変更イベントをシグナルする。ハンドルは CreateEvent 関数の呼び出しで初期化しておく必要がある。レジストリベースのストアでは pvCtrlPara に NULL を指定できる。pvCtrlPara が NULL の場合、内部の通知変更イベントが作成され、シグナルされるよう登録される。内部の通知変更イベントを使用すると、ストアが変更された場合にのみ再同期操作が行える。

(プラグイン / モジュール : crypt32.dll)

解説

使用中のキャッシュされたストアの内容と、永続化ストレージ上のその内容との間に差異がある場合に、アプリケーションに通知できるようにする。

[戻り値]
関数が成功した場合、関数は 0 以外を返す。関数が失敗した場合は 0 を返す。拡張エラー情報は GetLastError
を呼び出して取得する。dwCtrlType が CERT_STORE_NOTIFY_CHANGE
の場合、イベントシグナル用のハンドルの設定に成功すると関数は 0 以外を返す。イベントハンドルが設定されなかった場合は 0
を返す。dwCtrlType が CERT_STORE_CTRL_RESYNC の場合、再同期が成功すると 0
以外を返す。再同期が失敗した場合は 0 を返す。dwCtrlType が CERT_STORE_CTRL_COMMIT
の場合、永続化ストアへのコミットが正常に完了すると 0 以外を返す。コミットが失敗した場合は 0
を返す。プロバイダーによっては特定の制御種別をサポートしない場合がある。その場合 CertControlStore は 0
を返し、GetLastError は ERROR_NOT_SUPPORTED に設定される。

[備考]

ストアの再同期は任意のタイミングで実行でき、シグナルされた通知変更イベントに続けて行う必要はない。CERT_STORE_CTRL_NOTIFY_CHANGE
はレジストリベースのストアプロバイダーで、RegNotifyChangeKeyValue
関数を使用してサポートされる。CERT_STORE_CTRL_NOTIFY_CHANGE を用いた CertControlStore
の呼び出しは、CERT_STORE_CTRL_RESYNC で渡すイベントハンドル 1 つにつき 1
回行う。CERT_STORE_CTRL_NOTIFY_CHANGE
を用いたこれらの呼び出しは、各イベントが作成された後に行わなければならず、イベントがシグナルされた後ではいけない。

情報

プラグイン / モジュールcrypt32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の crypt32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_crypt32_gen2.hs