使用活動識別碼

在 1.11 版和更新版本中,UMDF 驅動程式可以設定及擷取 (識別碼) 的活動識別碼。 活動識別碼可讓您建立多個 I/O 要求關聯,以便您可以使用 Windows 事件追蹤 (ETW) 追蹤來追蹤這些要求。 本主題描述驅動程式可能會使用活動識別碼的一些可能案例。

將新要求與現有要求產生關聯

在驅動程式的 I/O 分派回呼函式中,您可能會因為傳入要求而建立多個架構 I/O 要求。 驅動程式會從原始要求取得活動識別碼,並藉由呼叫 WdfRequestRetrieveActivityIdWdfRequestSetActivityId,在新的要求中設定它。

如需程式碼範例,請參閱 WdfRequestRetrieveActivityId

將新要求與現有線程產生關聯

驅動程式可能會在 I/O 分派執行緒以外的執行緒中,或在工作專案中建立新的 I/O 要求。 您可以從任何對應的要求,或使用與 I/O 分派執行緒相關聯的活動識別碼,為這類要求設定活動識別碼。 驅動程式可以藉由呼叫 EventActivityIdControl ,然後呼叫 WdfRequestSetActivityId 來設定每個新 I/O 要求的識別碼,以擷取與目前線程相關聯的活動識別碼。

如果驅動程式呼叫 WIN32 API 來傳送 I/O 要求,它可以從原始要求擷取活動識別碼,並將其傳播至執行緒。 然後,I/O 管理員會將與執行緒相關聯的活動識別碼套用至任何 I/O 要求封包, (IRP) 它產生以回應要求。