[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 構造体を 0 にし、その 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 |
ヘッダー | wdfio.h (Wdf.h を含む) |
こちらもご覧ください
WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_DEFAULT_INIT