次の方法で共有


NdisMCoIndicateReceiveNetBufferLists 関数 (ndis.h)

NdisMCoIndicateReceiveNetBufferLists 関数は、ミニポート ドライバーがネットワークからデータを受信したことを示します。

構文

void NdisMCoIndicateReceiveNetBufferLists(
  [in] IN NDIS_HANDLE      NdisVcHandle,
  [in] IN PNET_BUFFER_LIST NetBufferLists,
  [in] IN ULONG            NumberOfNetBufferLists,
  [in] IN ULONG            CoReceiveFlags
);

パラメーター

[in] NdisVcHandle

仮想接続 (VC) を識別するハンドル。 ミニポート ドライバーは、クライアントが発信呼び出しを設定したとき、または呼び出しマネージャーが着信呼び出し通知を示すためにクライアント登録済みサービス アクセス ポイント (SAP) の VC を作成したときに、ミニポートCoCreateVc 関数への入力パラメーターとしてこのハンドルを取得しました。

[in] NetBufferLists

ミニポート ドライバーが割り当てた NET_BUFFER_LIST 構造体のリンクされた一覧。

[in] NumberOfNetBufferLists

netBufferLists が指定する構造体のリンク リストに含まれるNET_BUFFER_LIST構造体 数。

[in] CoReceiveFlags

送信操作の属性を定義するフラグ。 フラグは、ビットごとの OR 演算と組み合わせることができます。 すべてのフラグをクリアするには、このパラメーターを 0 に設定します。 NdisMCoIndicateReceiveNetBufferLists では、次のフラグがサポートされます。

NDIS_RECEIVE_FLAGS_DISPATCH_LEVEL

現在の IRQL はDISPATCH_LEVEL。 このフラグの詳細については、「ディスパッチ IRQL 追跡」を参照してください。

NDIS_RECEIVE_FLAGS_RESOURCES

ミニポート ドライバーは、ndisMCoIndicateReceiveNetBufferLists が返された直後に、NET_BUFFER_LIST構造体とアタッチされたNET_BUFFER構造体の所有権 再利用します。

戻り値

何一つ

備考

ミニポート ドライバーは通常、NdisMCoIndicateReceiveNetBufferLists その ミニポートInterruptDPC 関数から関数を呼び出します。 ミニポート ドライバーが NdisMCoIndicateReceiveNetBufferLists 呼び出すと、NetBufferLists パラメーターで NET_BUFFER_LIST 構造体の一覧を指定します。 NDIS は、バインドされたプロトコル ドライバーにNET_BUFFER_LIST構造体を渡します。

ミニポート ドライバーは、各NET_BUFFER_LIST構造体の SourceHandle メンバーを NdisVcHandle パラメーターと同じ値に設定して、NDIS が正しいミニポート ドライバーにNET_BUFFER_LIST構造体を返すことができるようにする必要があります。

ミニポート ドライバー NdisMCoIndicateReceiveNetBufferLists を呼び出し、CoReceiveFlags パラメーターでNDIS_RECEIVE_FLAGS_RESOURCESフラグをクリアする場合、NDIS は、ミニポート ドライバーに指定 NetBufferLists NET_BUFFER_LIST構造体を返します。ミニポートReturnNetBufferLists 関数を します。 この場合、ミニポート ドライバーは、NDIS がミニポート ドライバーの ミニポートReturnNetBufferLists 関数にNET_BUFFER_LIST構造体を返すまで、NET_BUFFER_LIST構造体を再利用しないでください。

ミニポート ドライバーが NdisMCoIndicateReceiveNetBufferLists 呼び出し、CoReceiveFlags パラメーターにNDIS_RECEIVE_FLAGS_RESOURCES フラグを設定する場合、ミニポート ドライバーは、NET_BUFFER_LIST構造体の所有権を直ちに回復する必要があります。 この場合、NDIS はミニポート ドライバーの ミニポートReturnNetBufferLists 関数を呼び出してNET_BUFFER_LIST構造体を返しません。 代わりに、NdisMCoIndicateReceiveNetBufferLists が返されるときに、NDIS はミニポート ドライバーにNET_BUFFER_LIST構造体 返します。 ミニポート ドライバーは、NdisMCoIndicateReceiveNetBufferLists が返 直後にNET_BUFFER_LIST構造体を再利用する必要があります。 NET_BUFFER_LIST構造体を再利用するために、ミニポート ドライバーは独自の構造体を呼び出すことができます。ミニポートReturnNetBufferLists 関数を します。

ミニポート ドライバーは、CoReceiveFlags パラメーターでNDIS_RECEIVE_FLAGS_RESOURCESフラグを設定する場合、プロトコル ドライバーは、ネットワーク データをコピーし、ミニポート ドライバーにNET_BUFFER_LIST構造体を解放する必要があります。 不要なコピーを回避するために、十分な事前に割り当てられたNET_BUFFER_LIST構造体を使用してミニポート ドライバーを設計する必要があります。

NdisMCoIndicateReceiveNetBufferLists の呼び出し元は、NET_BUFFER_LIST構造体、アタッチされた NET_BUFFER 構造体、およびアタッチされたメモリ記述子リスト (MDL) を適切に初期化する必要があります。

必要条件

要件 価値
サポートされる最小クライアント NDIS 6.0 以降でサポートされています。
ターゲット プラットフォーム デスクトップ
ヘッダー ndis.h (Ndis.h を含む)
ライブラリ Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 する Irql_MCO_Function(ndis)

関連項目

ミニポートCoCreateVc する

ミニポートInterruptDPC

ミニポートReturnNetBufferLists

NET_BUFFER

NET_BUFFER_LIST