次の方法で共有


HttpCreateRequestQueue 関数 (http.h)

HttpCreateRequestQueue 関数は、新しい要求キューを作成するか、既存の要求キューを開きます。

この関数は、HTTP バージョン 1.0 HttpCreateHttpHandle 関数に置き換えられます。

構文

HTTPAPI_LINKAGE ULONG HttpCreateRequestQueue(
  [in]           HTTPAPI_VERSION      Version,
  [in, optional] PCWSTR               Name,
  [in, optional] PSECURITY_ATTRIBUTES SecurityAttributes,
  [in, optional] ULONG                Flags,
  [out]          PHANDLE              RequestQueueHandle
);

パラメーター

[in] Version

要求キューのバージョンを示すHTTPAPI_VERSION構造体。 バージョン 2.0 では、構造体のインスタンスを宣言し、httpCreateRequestQueue渡す前にHTTPAPI_VERSION_2定義済みの値に設定します。

バージョンは 2.0 である必要があります。httpCreateRequestQueue では、バージョン 1.0 の要求キューはサポートされていません。

[in, optional] Name

要求キューの名前。 長さ (バイト単位) は、MAX_PATHを超えることはできません。

省略可能な名前パラメーターを使用すると、他のプロセスが名前で要求キューにアクセスできます。

[in, optional] SecurityAttributes

要求キューのアクセス許可を含む SECURITY_ATTRIBUTES 構造体へのポインター。

このパラメーターは、既存の要求キューを開くときに NULL する必要があります。

[in, optional] Flags

flags パラメーターは、要求キューのスコープを定義します。 このパラメーターには、次の 1 つ以上を指定できます。

価値 意味
HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER
このフラグを使用して作成された要求キューのハンドルを使用して I/O 操作を実行することはできません。 このフラグは、要求キュー ハンドルが作成された場合にのみ設定できます。
HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING
HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING フラグを使用すると、アプリケーションは既存の要求キューを名前で開き、要求キュー ハンドルを取得できます。 pName パラメーターには、有効な要求キュー名が含まれている必要があります。NULLすることはできません。

[out] RequestQueueHandle

要求キューへのハンドルを受け取る変数へのポインター。 このパラメーターには有効なポインターが含まれている必要があります。NULLすることはできません。

戻り値

関数が成功すると、NO_ERROR が返されます。

関数が失敗すると、次のいずれかのエラー コードが返されます。

価値 意味
ERROR_REVISION_MISMATCH
Version パラメーターに無効なバージョンが含まれています。
ERROR_INVALID_PARAMETER
要求キュー名の長さ (バイト単位) は、MAX_PATHを超えることはできません。

pSecurityAttributes パラメーターは、既存の要求キューを開くときに NULL する必要があります。

HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER は、要求キューの作成時にのみ設定できます。

HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING は、アプリケーションが既存の要求キューを開くアクセス許可を持っている場合にのみ設定できます。 この場合、pReqQueueHandle パラメーターは有効なポインターである必要があり、pName パラメーターには有効な要求キュー名が含まれている必要があります。NULLすることはできません。

HttpCreateRequestQueue によって返される pReqQueueHandle パラメーター NULL

ERROR_ALREADY_EXISTS
pName パラメーターは、同じ名前を含む既存の要求キューと競合します。
ERROR_ACCESS_DENIED
呼び出し元のプロセスには、要求キューを開くアクセス許可がありません。
ERROR_DLL_INIT_FAILED
HttpCreateRequestQueueを呼び出す前に、アプリケーション HttpInitialize 呼び出していません。

備考

HTTP Server API では、バージョン 1.0 の要求キューを使用する既存のアプリケーションがサポートされていますが、HTTP Server API を使用した新しい開発では、要求キューを作成するために HttpCreateRequestQueue 使用する必要があります。HttpCreateHttpHandle は使用しないでください。 バージョン 2.0 API は、HttpCreateRequestQueueによって作成されたバージョン 2.0 要求キューとのみ互換性があります。

HTTP バージョン 2 要求キューには手動構成が必要です。アプリケーションは、HttpServerBindingPropertyで httpSetUrlGroupProperty 呼び出して、URL グループを作成し、1 つ以上の URL グループを要求キューに関連付ける必要があります。 アプリケーションは、Property パラメーターで必要な構成 HttpSetRequestQueueProperty を呼び出すことによって、要求キューを構成します。 URL グループの作成と構成の詳細については、「HttpCreateUrlGroup と httpSetUrlGroupPropertyする」を参照してください。

pSecurityAttributes パラメーターでは、要求キューが作成された場合にのみ、セキュリティ属性を指定できます。 要求キューを作成するアプリケーションのみが、要求キュー ハンドルにアクセス制御リスト (ACL) を設定して、プロセス (作成者アプリケーション以外) が要求を開いたり、要求を受信したり、要求キュー ハンドルで応答を送信したりできるようにすることができます。 既定では、ACL でアクセス許可が付与されていない限り、アプリケーションは要求キューを開くことはできません。

作成者プロセスでは、必要に応じて HTTP_CREATE_REQUEST_QUEUE_FLAG_CONTROLLER フラグを使用して、http 要求を受信しないことを示すことができます。

HttpCreateRequestQueue を使用すると、アプリケーションは、HTTP_CREATE_REQUEST_QUEUE_FLAG_OPEN_EXISTING フラグを使用して既存の要求キューを開き、要求キューへのハンドルを取得できます。 コントローラー以外のアプリケーションでは、このハンドルを使用して HTTP I/O 操作を実行できます。 要求キューを作成するアプリケーションのみが、HttpSetRequestQueuePropertyを呼び出すことによって、そのキューにプロパティを設定できます。

HttpCreateRequestQueue によって作成された要求キューへのハンドルは、アプリケーションが終了する前またはセッションが不要になったとき HttpCloseRequestQueue を呼び出すことによって閉じる必要があります。

アプリケーションは、httpCreateRequestQueue呼び出す前に、httpInitialize 呼び出す必要があります。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2008 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー http.h
ライブラリ Httpapi.lib
DLL Httpapi.dll

関連項目

HTTP Server API バージョン 2.0 Functions

HttpCloseRequestQueue の

HttpCreateHttpHandle を する

HttpQueryRequestQueueProperty の

HttpSetRequestQueueProperty の

HttpShutdownRequestQueue を する