HttpDeclarePush

HTTP サーバープッシュで使うリソース対サブリソースの関係を宣言する。プロトコル・接続・クライアント・ポリシーが許す場合、HTTP.sys は該当リソースに対する HTTP 2.0 サーバープッシュを実行する。

HttpDeclarePush RequestQueueHandle, RequestId, Verb, Path, Query, Headers

RequestQueueHandle : [intptr] HttpCreateRequestQueue 関数が返した HTTP.sys リクエストキューへのハンドル。
RequestId : [int64] プッシュ操作を宣言するリクエストの不透明識別子。指定されたキューハンドルから来たリクエストでなければならない。
Verb : [int] プッシュ操作で使用する HTTP 動詞。HTTP.sys のプッシュ操作は HttpVerbGET と HttpVerbHEAD のみサポートする。
Path : [wstr] プッシュ対象リソースの URL のパス部。
Query : [str] プッシュ対象リソースの URL のクエリ部。先頭のクエスチョンマーク (?) は含めない。
Headers : [var] プッシュ操作のリクエストヘッダ。Host ヘッダを指定してはならない。HTTP.sys がクライアントの元リクエストに一致する Host 情報を自動生成・強制する。プッシュリクエストはエンティティボディを持てないため、非ゼロの Content-Length や Transfer-Encoding ヘッダは含められない。

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

解説

HTTP
サーバープッシュで使うリソース対サブリソースの関係を宣言する。プロトコル・接続・クライアント・ポリシーが許す場合、HTTP.sys
は該当リソースに対する HTTP 2.0 サーバープッシュを実行する。

[戻り値]
関数が成功すると NO_ERROR を返す。関数が失敗した場合、WinError.h で定義されるシステムエラーコードを返す。

[備考]
クライアントが自身でサブリソースを発見するような応答バイトを送る前に HttpDeclarePush
を呼ぶこと。順序を守らないとサーバーのプッシュとクライアントの取得が競合し帯域を無駄にする可能性がある。サーバーアプリケーションは必要かつクライアントがまだキャッシュしていないと強く確信できるリソースに対してのみ
HttpDeclarePush を使用すべきである。そうでないと帯域と CPU を無駄に使う。

情報

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