處理 Miniport 配接器中的 OID 要求
NDIS 會呼叫迷你埠驅動程式的 MiniportOidRequest 函式,以提交 OID 要求來查詢或設定驅動程式中的資訊。 NDIS 代表其本身呼叫MiniportOidRequest函式,或代表呼叫NdisOidRequest 或 NdisFOidRequest函式的過度處理驅動程式。
NDIS 會將 MiniportOidRequest 指標傳遞給包含要求資訊的 NDIS_OID_REQUEST 結構。 要求結構包含OID_Xxx識別碼,指出要求類型和要定義要求資料的其他成員。
Timeout成員會指定要求的逾時,以秒為單位。 如果驅動程式完成要求之前逾時到期,NDIS 可以重設驅動程式或取消要求。
RequestId成員會指定要求的選擇性識別碼。 迷你埠驅動程式可以將狀態指示的 RequestId 成員設定為從相關聯 OID 要求 之 RequestId 成員取得的值。 一般而言,迷你埠驅動程式可以忽略此成員。 如果驅動程式必須設定此成員,則特定 OID 的參考頁面會提供必要值。 如需狀態指示的詳細資訊,請參閱 配接器狀態指示。
成功處理 OID 集合要求的迷你埠驅動程式,必須在從 OID 集合要求傳回時,在NDIS_OID_REQUEST結構中設定SupportedRevision成員。 SupportedRevision成員會通知驅動程式所支援之修訂要求的起始端。 例如,迷你埠驅動程式可以建立Xxx_REVISION_2結構、提供適合Xxx_REVISION_1結構的值,並以零填滿結構的其餘部分。 迷你埠驅動程式會在 SupportedRevision 成員中回報Xxx_REVISION_1。 在此情況下,可支援Xxx_REVISION_2的通訊協定驅動程式將會使用迷你埠驅動程式支援的Xxx_REVISION_1資訊。 如需 NDIS 結構中版本資訊的詳細資訊,請參閱 指定 NDIS 版本資訊。
迷你埠驅動程式可以傳回成功或失敗狀態,以同步完成 OID 要求。
迷你埠驅動程式可以傳回NDIS_STATUS_PENDING,以非同步方式完成 OID 要求。 在此情況下,迷你埠驅動程式必須呼叫 NdisMOidRequestComplete 函式 才能完成作業。
如果 MiniportOidRequest 傳回NDIS_STATUS_PENDING,NDIS 將不會呼叫 MiniportOidRequest 與配接器的另一個要求,直到擱置的要求完成為止。
NDIS 可以呼叫迷你埠驅動程式的 MiniportCancelOidRequest 函式來取消 OID 要求。