WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_EXAMINE_INIT関数 (wdfio.h)
[KMDF にのみ適用]
WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_EXAMINE_INIT関数は、ドライバーのWDF_IO_QUEUE_FORWARD_PROGRESS_POLICY構造体を初期化します。
構文
void WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_EXAMINE_INIT(
[out] PWDF_IO_QUEUE_FORWARD_PROGRESS_POLICY Policy,
[in] ULONG TotalForwardProgressRequests,
[in] PFN_WDF_IO_WDM_IRP_FOR_FORWARD_PROGRESS EvtIoWdmIrpForForwardProgress
);
パラメーター
[out] Policy
ドライバーの WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY 構造体へのポインター。
[in] TotalForwardProgressRequests
メモリ不足の状況でフレームワークが使用するために予約を試みる要求オブジェクトの数。 この番号は 0 より大きくなければなりません。
[in] EvtIoWdmIrpForForwardProgress
ドライバーの EvtIoWdmIrpForForwardProgress コールバック関数へのポインター。
戻り値
なし
解説
WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_EXAMINE_INIT関数は、指定したWDF_IO_QUEUE_FORWARD_PROGRESS_POLICY構造体をゼロにし、その Size メンバーを設定します。 また、構造体の TotalForwardProgressRequests およびForwardProgressReservePolicySettings.Policy.ExaminePolicy.EvtIoWdmIrpForForwardProgress メンバー を指定された値に設定し、 ForwardProgressReservedPolicy メンバーを WdfIoForwardProgressReservedPolicyUseExamine に設定します。
例
次のコード例では、 WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY 構造体を初期化し、 WdfIoQueueAssignForwardProgressPolicy を呼び出します。 この例では、ドライバーは、メモリ不足の状況でフレームワークが 10 個の要求オブジェクトを割り当てて予約し、フレームワークが予約済み要求オブジェクトのいずれかを使用する前に、ドライバーの MyIoForwardExamineIrpForForwardProgress コールバック関数を呼び出す必要があることを指定しています。
#define MAX_RESERVED_REQUESTS 10
WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY queueForwardProgressPolicy;
WDFQUEUE readQueue;
NTSTATUS status = STATUS_SUCCESS;
WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_EXAMINE_INIT(
&queueForwardProgressPolicy,
MAX_RESERVED_REQUESTS,
MyIoForwardExamineIrpForForwardProgress
);
status = WdfIoQueueAssignForwardProgressPolicy(
readQueue,
&queueForwardProgressPolicy
);
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.9 |
Header | wdfio.h (Wdf.h を含む) |
こちらもご覧ください
WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_DEFAULT_INIT