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 を する
ミニポートReturnNetBufferLists