WdfRequestAllocateTimer 関数 (wdfrequest.h)

[KMDF と UMDF に適用]

WdfRequestAllocateTimer メソッドは、指定された I/O 要求にタイマーを割り当てます。

構文

NTSTATUS WdfRequestAllocateTimer(
  [in] WDFREQUEST Request
);

パラメーター

[in] Request

フレームワーク要求オブジェクトへのハンドル。

戻り値

操作が成功した場合、WdfRequestAllocateTimer はSTATUS_SUCCESSを返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。

リターン コード 説明
STATUS_INVALID_PARAMETER
入力パラメーターが無効です。
STATUS_INSUFFICIENT_RESOURCES
タイマーを割り当てませんでした。
 

このメソッドは、他の NTSTATUS 値を返す場合もあります。

ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。

注釈

ドライバーが WdfRequestSend を呼び出すときにタイムアウト値を指定する場合は、 WdfRequestSend を呼び出す前に WdfRequestAllocateTimer を呼び出 必要があります。 これにより、タイマーを割り当てるためのシステム リソースが不足している場合、 WdfRequestSend の呼び出しが失敗しないようにします。

指定した要求に対してタイマーが既に割り当てられている場合、 WdfRequestAllocateTimer はSTATUS_SUCCESSを返します。

次のコード例では、 WDF_REQUEST_SEND_OPTIONS 構造体を初期化し、I/O 要求にタイマー オブジェクトを割り当ててから WdfRequestSend を呼び出します。

NTSTATUS  status;
WDF_REQUEST_SEND_OPTIONS  options;
BOOLEAN  requestSend;

WDF_REQUEST_SEND_OPTIONS_INIT(
                              &options,
                              WDF_REQUEST_SEND_OPTION_TIMEOUT
                              );

WDF_REQUEST_SEND_OPTIONS_SET_TIMEOUT(
                                     &options,
                                     WDF_ABS_TIMEOUT_IN_SEC(TIME_OUT_VALUE)
                                     );
status = WdfRequestAllocateTimer(
                                 request
                                 );
if (!NT_SUCCESS(status)){
    return status;
...
    requestSend = WdfRequestSend(
                                 request,
                                 ioTarget,
                                 &options
                                 );
}

要件

要件
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.0
最小 UMDF バージョン 2.0
Header wdfrequest.h (Wdf.h を含む)
Library Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
DDI コンプライアンス規則 DriverCreate(kmdf)InvalidReqAccess(kmdf)InvalidReqAccessLocal(kmdf)KmdfIrql(kmdf)KmdfIrql2(kmdf)、KmdfIrqlExplicit(kmdf)

こちらもご覧ください

WDF_ABS_TIMEOUT_IN_SEC

WDF_REQUEST_SEND_OPTIONS_INIT

WdfRequestSend