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 指定要NDIS_OBJECT_TYPE_STATUS_INDICATION的 Type 成員、將 Revision 成員設定為 NDIS_STATUS_INDICATION_REVISION_1,並將 Size 成員設定為 NDIS_SIZEOF_STATUS_INDICATION_REVISION_1。
SourceHandle
狀態指示的來源。 如果來源是迷你埠配接器,它應該是 NDIS 傳遞給 MiniportInitializeEx 函式之 MiniportAdapterHandle 參數的句柄。 如果來源是篩選模組,它應該是 NDIS 傳遞給 FilterAttach 函式之 NdisFilterHandle 參數的句柄。
PortNumber
狀態指示的來源埠。 如果狀態指示不是埠特有的,請將 PortNumber 設定為零。
StatusCode
狀態代碼,由 NDIS 提供,或從基礎驅動程序傳播。 值為 NDIS_STATUS_XXX 程序代碼。 如需NDIS_STATUS_XXX 代碼的詳細資訊,請參閱 狀態指示。
Flags
StatusBuffer 狀態緩衝區中的資訊類型。 迷你埠驅動程式將此成員設定為零。 此成員保留給 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 的大小為 (NDIS_LINK_STATE) 。
對於某些NDIS_STATUS_XXX 值,此指標為 NULL , 且 StatusBufferSize 設定為零。
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 和更新版本支援。 |
標頭 | ndis.h (包含 Ndis.h) |