次の方法で共有


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 構造体を 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

WDF_IO_QUEUE_FORWARD_PROGRESS_POLICY_PAGINGIO_INIT

WdfIoQueueAssignForwardProgressPolicy