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、Revision 成員NDIS_STATUS_INDICATION_REVISION_1,並將 Size 成員設定為 NDIS_STATUS_INDICATION_REVISION_1 結構 NDIS_SIZEOF_STATUS_INDICATION_REVISION_1 成員。
SourceHandle
狀態指示的來源。 如果來源是迷你埠配接器,它應該是 NDIS 傳遞給 MiniportAdapterHandleMiniportInitializeEx 函式的句柄。 如果來源是篩選模組,它應該是傳遞至 NdisFilterHandleFilterAttach 函式之 NDIS 的句柄。
PortNumber
狀態指示的來源埠。 如果狀態指示不是埠特有的,請將 PortNumber 設為零。
StatusCode
狀態代碼,由 NDIS 提供或從基礎驅動程序傳播。 此值是NDIS_STATUS_XXX 程式代碼。 如需NDIS_STATUS_XXX 代碼的詳細資訊,請參閱 狀態指示。
Flags
狀態緩衝區中 StatusBuffer 的信息類型。 Miniport 驅動程式將此成員設定為零。 此成員保留給 NDIS。
DestinationHandle
識別應該接收狀態指示之過度驅動程式的句柄。 如果 NULL,NDIS 會向系結至迷你埠配接器的每個通訊協定驅動程式指出狀態。 如果非NULL,NDIS 只會向 DestinationHandle 識別的驅動程式指出狀態。 在此情況下,驅動程式也必須設定 RequestId 成員。 如需 OID 要求的詳細資訊,請參閱一節。
RequestId
與狀態指示相關聯的 OID 要求。 如果沒有與狀態指示相關聯的 OID 要求,RequestIdNULL。 如果狀態指示與迷你埠驅動程式以傳回的狀態NDIS_STATUS_INDICATION_REQUIRED完成的 OID 要求相關聯,Miniport 驅動程式就必須設定 RequestId 成員。 在此情況下,驅動程式也必須設定 DestinationHandle 成員。
如需 OID 要求的詳細資訊,請參閱下列一節。
StatusBuffer
緩衝區的指標,其中包含相依於 statusCode 值 的中特定數據。
例如,如果 StatusCode 為 NDIS_STATUS_LINK_STATE,則此參數會指向 NDIS_LINK_STATE 結構 ,而 statusBufferSize 為 sizeof(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 要求相關聯,則發出狀態指示的驅動程式必須設定 DestinationHandle,並 RequestId NDIS_STATUS_INDICATION 結構的成員。
在此情況下,驅動程式會將 DestinationHandle 和 RequestId 成員設定為來自 RequestHandle 和 RequestId 成員的值,分別 NDIS_OID_REQUEST 結構。
例如,在無線網路中,OID 要求的處理可能需要很長的時間才能完成。 在此情況下,迷你埠驅動程式可以立即完成 OID 要求,並在稍後提供狀態指示,以提供 OID 要求的最終結果。
通訊協定驅動程式會在 protocolStatusEx 函式 接收狀態指示。 篩選驅動程式會在 FilterStatus 函式收到狀態指示。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | NDIS 6.0 和更新版本支援。 |
標頭 | ndis.h (包括 Ndis.h) |