NDIS_STATUS_INDICATION 構造体 (ndis.h)
NDIS と基になるドライバーは、NDIS_STATUS_INDICATION構造を使用して、上にあるプロトコル ドライバーの状態を示します。
構文
typedef struct _NDIS_STATUS_INDICATION {
NDIS_OBJECT_HEADER Header;
NDIS_HANDLE SourceHandle;
NDIS_PORT_NUMBER PortNumber;
NDIS_STATUS StatusCode;
ULONG Flags;
NDIS_HANDLE DestinationHandle;
PVOID RequestId;
PVOID StatusBuffer;
ULONG StatusBufferSize;
GUID Guid;
PVOID NdisReserved[4];
} NDIS_STATUS_INDICATION, *PNDIS_STATUS_INDICATION;
メンバー
Header
NDIS_STATUS_INDICATION構造体のNDIS_OBJECT_HEADER構造体。 Header が指定する構造体の Type メンバーをNDIS_OBJECT_TYPE_STATUS_INDICATIONに設定し、Revision メンバーを NDIS_STATUS_INDICATION_REVISION_1に、Size メンバーを NDIS_SIZEOF_STATUS_INDICATION_REVISION_1に設定します。
SourceHandle
状態表示のソース。 ソースがミニポート アダプターの場合は、NDIS が MiniportInitializeEx 関数の MiniportAdapterHandle パラメーターに渡したハンドルである必要があります。 ソースがフィルター モジュールの場合は、NDIS が FilterAttach 関数の NdisFilterHandle パラメーターに渡したハンドルである必要があります。
PortNumber
状態表示のソース ポート。 状態表示がポートに固有でない場合は、 PortNumber を 0 に設定します。
StatusCode
状態コード。NDIS によって提供されるか、基になるドライバーから伝達されます。 値は、NDIS_STATUS_XXX コードです 。 NDIS_STATUS_XXX コードの詳細については、「 Status Indications」を参照してください。
Flags
StatusBuffer の状態バッファー内の情報の種類。 ミニポート ドライバーは、このメンバーを 0 に設定します。 このメンバーは NDIS 用に予約されています。
DestinationHandle
状態表示を受け取る必要がある、基になるドライバーを識別するハンドル。 NULL の場合、NDIS はミニポート アダプターにバインドされている各プロトコル ドライバーの状態を示します。 NULL 以外の場合、NDIS は DestinationHandle が識別するドライバーにのみ状態を示します。 この場合、ドライバーは RequestId メンバーも設定する必要があります。 OID 要求の詳細については、「解説」セクションを参照してください。
RequestId
状態表示に関連付けられている OID 要求。 状態表示に関連付けられている OID 要求がない場合、 RequestId は NULL です。 ミニポート ドライバーは、ミニポート ドライバーがNDIS_STATUS_INDICATION_REQUIREDの返された状態で完了した OID 要求に関連付けられている場合は、 RequestId メンバーを設定する必要があります。 この場合、ドライバーは DestinationHandle メンバーも設定する必要があります。
OID 要求の詳細については、次の「備考」セクションを参照してください。
StatusBuffer
StatusCode の値に依存する中固有のデータを含むバッファーへのポインター。
たとえば、 StatusCode が NDIS_STATUS_LINK_STATEされている場合、このパラメーターは NDIS_LINK_STATE 構造体を指し、 StatusBufferSize は sizeof(NDIS_LINK_STATE) です。
一部のNDIS_STATUS_XXX 値の場合、このポインターは NULL で 、StatusBufferSize は 0 に設定されます。
StatusBufferSize
StatusBuffer の状態情報バッファーの長さ (バイト単位)。
Guid
NDIS が WMI 通知を生成するために使用するプライベート GUID。 プライベート GUID の詳細については、「 OID_GEN_SUPPORTED_GUIDS」を参照してください。
NdisReserved[4]
NDIS 用に予約されています。
注釈
ミニポート ドライバーは、 NdisMIndicateStatusEx 関数を呼び出すことによって状態を示します。 フィルター ドライバーは、 NdisFIndicateStatus 関数を 呼び出します。
一部の OID 要求では、ミニポート ドライバーを有効にして、状態を示す OID 完了状態を提供します。 この場合、ミニポート ドライバーは OID 要求の完了状態のNDIS_STATUS_INDICATION_REQUIREDを返します。 ミニポート ドライバーは、特定の OID がそれを許可しない限り、この状態を返すことはできません。 この状態が許可されているかどうかを確認するには、OID リファレンス ページを参照してください。
ミニポート ドライバーがNDIS_STATUS_INDICATION_REQUIRED返された OID 要求に状態表示が関連付けられている場合、状態表示を行っているドライバーは、NDIS_STATUS_INDICATION構造体の DestinationHandle メンバーと RequestId メンバーを設定する必要があります。
この場合、ドライバーは DestinationHandle メンバーと RequestId メンバーをそれぞれ、NDIS_OID_REQUEST構造体の RequestHandle メンバーと RequestId メンバーの値に設定します。
たとえば、ワイヤレス ネットワークでは、OID 要求の処理が完了するまでに非常に長い時間がかかる場合があります。 この場合、ミニポート ドライバーは、OID 要求をすぐに完了し、後で OID 要求の最終的な結果を提供する状態を示します。
プロトコル ドライバーは、 ProtocolStatusEx 関数で状態インジケーターを受け取ります。 フィルター ドライバーは 、FilterStatus 関数で状態インジケーターを受け取ります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | NDIS 6.0 以降でサポートされています。 |
Header | ndis.h (Ndis.h を含む) |