共用方式為


ATA 埠驅動程式支援例程

此頁面會將系統提供的 ATA 埠驅動程式所提供的支援例程分類。

如需 ATA 驅動程式迷你埠例程的清單,請參閱 ATA 迷你埠驅動程式

初始化例程

ATA 埠驅動程式提供下列初始化例程。

常式傳回的值 Description
AtaPortInitializeEx 初始化埠和迷你埠驅動程式。

PCI 設定空間存取的例程

ATA 埠驅動程式提供下列例程,可協助您讀取和修改裝置 PCI 設定空間的內容。

常式傳回的值 Description
AtaPortGetBusData 從裝置PCI設定空間內的指定位置擷取數據。
AtaPortSetBusData 會將資料儲存在指定位移的指定裝置PCI設定空間中。

處理 I/O 要求的例程

ATA 埠驅動程式提供下列 I/O 要求處理支援例程。

常式傳回的值 Description
AtaPortGetScatterGatherList 擷取與此要求相關聯的散佈/收集清單。
AtaPortGetPhysicalAddress 將虛擬位址範圍轉換為實體位址範圍。
AtaPortGetDeviceBase 傳回用來與主機總線配接器通訊的對應邏輯基位址, (HBA) 。
AtaPortGetUncachedExtension 配置 CPU 和裝置共用的未快取通用緩衝區。
AtaPortBuildRequestSenseIrb 建置並傳回作業程序代碼的 IRB SCSIOP_REQUEST_SENSE。
AtaPortReleaseRequestSenseIrb 釋放使用 AtaPortBuildRequestSenseIrb 配置的要求感知 IRB。
AtaPortCompleteAllActiveRequests 完成指定裝置的所有作用中 IRB。
AtaPortCompleteRequest 完成指定的 IRB。

回呼例程

迷你埠驅動程式會使用數個例程向埠驅動程式要求回呼。

常式傳回的值 Description
AtaPortRequestWorkerRoutine 要求背景工作例程。
AtaPortRequestSynchronizedRoutine 要求與中斷服務例程同步處理 (ISR) 。
AtaPortControllerSyncRoutine 提供跨控制器上所有通道共用之數據結構的同步存取。
AtaPortRequestTimer 要求定時器回呼。

報告組態變更的例程

下列例程可讓迷你埠驅動程式通知 ATA 埠驅動程式變更已連結至通道的裝置組態。

常式傳回的值 Description
AtaPortBusChangeDetected 通知埠驅動程式在指定的通道上的裝置組態變更。
AtaPortRequestPowerStateChange 要求指定裝置的電源狀態轉換。

控制要求佇列的例程

埠驅動程式會針對每個邏輯單元編號維護一個 (LUN) 要求佇列,以及每個通道的一個要求佇列。 迷你埠驅動程式可以使用下列例程來暫停和繼續不同的要求佇列。

常式傳回的值 Description
AtaPortDeviceBusy 通知埠驅動程式指出指定的裝置忙碌中。
AtaPortDeviceReady 通知埠驅動程式指出指定的裝置已準備好接受新的要求。

公用程式例程

下列例程是迷你埠驅動程式的一般公用程式支援函式。

常式傳回的值 Description
AtaPortCopyMemory 將數據從某個位置複製到另一個位置。
**AtaPortMoveMemory 例程 將數據從某個位置複製到另一個位置。
AtaPortConvertUlongToPhysicalAddress 將指定的 ULONG 位址轉換成類型IDE_PHYSICAL_ADDRESS的值。
AtaPortConvertPhysicalAddressToUlong 截斷 ULONG IDE_PHYSICAL_ADDRESS類型的位址。
AtaPortStallExecution 在迷你埠驅動程式中停止。
AtaPortInitializeQueueTag 初始化指定裝置的佇列標記清單。
AtaPortAllocateQueueTag 傳回指定裝置的佇列標記。
AtaPortReleaseQueueTag 釋放指定的佇列標記。

偵錯和錯誤報告例程

下列例程可用於偵錯和錯誤報告。

常式傳回的值 Description
AtaPortDebugPrint 將訊息字串傳遞至核心調試程式,讓調試程式列印。

裝置埠和註冊存取的例程

ATA 埠驅動程式提供下列埠和註冊存取支援例程。

常式傳回的值 Description
AtaPortReadPortBufferUchar 將指定數目的未帶正負號位元組值從 HBA 傳輸至緩衝區。
AtaPortReadPortBufferUlong 將指定數目的 ULONG 值從 HBA 傳輸至緩衝區。
AtaPortReadPortBufferUshort 將指定數目的 USHORT 值從 HBA 傳輸至緩衝區。
AtaPortReadPortUchar 從 HBA 讀取未帶正負號的位元元組值。
AtaPortReadPortUlong 從 HBA 讀取 ULONG 值。
AtaPortReadPortUshort 從 HBA 讀取 USHORT 值。
AtaPortReadRegisterBufferUchar 將指定的不帶正負號位元組數目從 HBA 傳輸至緩衝區。
AtaPortReadRegisterBufferUlong 將指定的 ULONG 數目從 HBA 傳輸至緩衝區。
AtaPortReadRegisterBufferUshort 將指定的 USHORT 數目從 HBA 傳輸至緩衝區。
AtaPortReadRegisterUchar 從 HBA 讀取未帶正負號的位元元組值。
AtaPortReadRegisterUlong 從 HBA 讀取 ULONG 值。
AtaPortReadRegisterUshort 從 HBA 讀取 USHORT 值。
AtaPortWritePortBufferUchar 將值寫入指定的緩存器位址。
AtaPortWritePortBufferUlong 將值寫入指定的緩存器位址。
AtaPortWritePortBufferUshort 將值寫入指定的緩存器位址。
AtaPortWritePortUchar 將未帶正負號的位元組值傳輸至 HBA。
AtaPortWritePortUlong 將 ULONG 值傳輸至 HBA。
AtaPortWritePortUshort 將 USHORT 值傳輸至 HBA。
AtaPortWriteRegisterBufferUchar 將指定的無符號位元組數目從緩衝區傳輸到 HBA。
AtaPortWriteRegisterBufferUlong 將指定的 ULONG 值數目從緩衝區傳輸到 HBA。
AtaPortWriteRegisterBufferUshort 將指定的 USHORT 值數目從緩衝區傳輸到 HBA。
AtaPortWriteRegisterUchar 將未簽署的位元組傳輸至 HBA 位址。
AtaPortWriteRegisterUlong 將 ULONG 值傳送至 HBA 位址。
AtaPortWriteRegisterUshort 將 USHORT 值傳送至 HBA 位址。

登錄存取的例程

實作通道介面的迷你埠驅動程式可以呼叫下列例程來存取 Windows 登錄。 只有實作控制器介面例程的迷你埠驅動程序無法存取這些例程。

常式傳回的值 Description
AtaPortRegistryAllocateBuffer 配置登錄作業的緩衝區。
AtaPortRegistryFreeBuffer 釋放使用 AtaPortRegistryAllocateBuffer 配置的登錄緩衝區。
AtaPortRegistryControllerKeyRead 讀取登錄機碼 HKLM\CurrentControlSet\Services\<service name>\ControllerN 下所指定值名稱相關聯的數據,其中 N 是控制器的數目。
AtaPortRegistryContrlollerKeyWrite 將數據寫入登錄機碼 HKLM\CurrentControlSet\Services\service 名稱\<ControllerN 底下的指定值名稱>,其中 N 是控制器的數目。
AtaPortRegistryControllerKeyWriteDeferred 以異步方式將數據寫入登錄機碼 HKLM\CurrentControlSet\Services\<service name\ControllerN 底下的指定值名稱>,其中 N 是控制器的數目。
AtaPortRegistryChannelSubKeyRead 讀取登錄機碼 HKLM\CurrentControlSet\Services\<service name>\ControllerN\ChannelM 下所指定值名稱相關聯的數據,其中 N 是控制器的數目, 而 M 是通道的數目。
AtaPortRegistryChannelSubKeyWrite 將數據寫入登錄機碼 HKLM\CurrentControlSet\Services\service name\<ControllerN\ChannelM 底下的指示值名稱>,其中 N 是控制器的數目,而 M 是通道的數目。
AtaPortRegistryChannelSubKeyWriteDeferred 以異步方式將數據寫入登錄機碼 HKLM\CurrentControlSet\Services\<service name\ControllerN\ChannelM 底下的指定值名稱>,其中 N 是控制器的數目,而 M 是通道的數目。