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 是通道的數目。 |