WdfRequestAllocateTimer 関数 (wdfrequest.h)
[KMDF と UMDF に適用]
WdfRequestAllocateTimer メソッドは、指定された I/O 要求にタイマーを割り当てます。
構文
NTSTATUS WdfRequestAllocateTimer(
[in] WDFREQUEST Request
);
パラメーター
[in] Request
フレームワーク要求オブジェクトへのハンドル。
戻り値
WdfRequestAllocateTimer 操作が成功した場合、STATUS_SUCCESSを返。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。
リターン コード | 形容 |
---|---|
|
入力パラメーターが無効です。 |
|
タイマーを割り当てませんでした。 |
このメソッドは、他の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 |
ヘッダー | wdfrequest.h (Wdf.h を含む) |
ライブラリ | Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
DDI コンプライアンス規則 を する | DriverCreate(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |