I/O 目標簡介

本節中的主題描述 Windows 驅動程式架構 (WDF) 驅動程式如何轉送 I/O 要求,或建立新的要求,並將新要求傳送至另一個稱為 I/O 目標的驅動程式。

函式驅動程式、篩選驅動程式或 迷你埠驅動程式 收到 I/O 要求時,驅動程式可能會自行處理要求,或可能需要其他驅動程式的協助。 如果驅動程式需要協助,它可以將要求轉送到另一個驅動程式,也可以建立一或多個新的要求,並將其傳送給另一個驅動程式。

在 Kernel-Mode Driver Framework 中, I/O 目標 代表 I/O 要求的目標裝置物件。 函式、篩選或迷你埠驅動程式可以使用 I/O 目標,將 I/O 要求傳送至另一個驅動程式。 這些驅動程式通常會將其 I/O 要求傳送至驅動程式堆疊中的下一個較低驅動程式。 因此,每個架構型函式、篩選和迷你埠驅動程式都有每個裝置的 本機 I/O 目標 ,也就是裝置的下一個較低驅動程式。

有時候,驅動程式必須將 I/O 要求傳送至不同的目標,也就是不同驅動程式堆疊的頂端,或很少會在傳送驅動程式堆疊中傳送其他驅動程式。 因此,架構也提供 遠端 I/O 目標,其中包含本機 I/O 目標以外的所有 I/O 目標。

每個 I/ O 目標都是以 I/O 目標物件來表示。 每個 I/O 目標物件主要是控制何時將要求傳遞至目標裝置物件的佇列。 當驅動程式將要求傳送至 I/O 目標時,架構會將要求儲存在佇列中,直到它可以將要求傳遞至目標裝置物件為止。

此架構同時支援一般 I/O 目標和特製化 I/O 目標

  • 所有函式、篩選和迷你埠驅動程式都可以使用一般 I/O 目標,但它們不支援任何特殊的裝置特定資料格式。

  • 特製化 I/O 目標可讓函式、篩選和迷你埠驅動程式輕鬆地傳送需要特殊目標特定資料格式的 I/O 要求。 目前,架構提供下列特製化 I/O 目標的支援:

如果架構提供支援裝置資料格式的特製化 I/O 目標,您的驅動程式應該使用特製化的 I/O 目標。 否則,驅動程式應該使用一般 I/O 目標。