亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? diskmain.h

?? WinCE5.0BSP for Renesas SH7770
?? H
?? 第 1 頁 / 共 2 頁
字號:
    inline void WriteWord(WORD wData) {
        ATA_WRITE_WORD((PWORD)(m_pATAReg + m_dwDataDrvCtrlOffset), wData);
    }
    inline void WriteByteBuffer(PBYTE pBuffer, DWORD dwCount) {
        WRITE_PORT_BUFFER_UCHAR(m_pATAReg+m_dwDataDrvCtrlOffset, pBuffer, dwCount);
    }
    inline void WriteWordBuffer(PWORD pBuffer, DWORD dwCount) {
        WRITE_PORT_BUFFER_USHORT((PWORD)(m_pATAReg + m_dwDataDrvCtrlOffset), pBuffer, dwCount);
    }
    // Read/write Error/Feature register
    inline BYTE GetError() {
        return (BYTE) ATA_READ_BYTE(m_pATAReg + m_dwFeatureErrorOffset);
    }
    inline void WriteFeature(BYTE bFeature) {
        ATA_WRITE_BYTE( m_pATAReg + m_dwFeatureErrorOffset, bFeature);
    }
    // Read/write Sector Count register
    inline BYTE GetReason() {
        return (BYTE) ATA_READ_BYTE(m_pATAReg + m_dwSectCntReasonOffset);
    }
    inline void WriteSectorCount(BYTE bValue) {
        ATA_WRITE_BYTE(m_pATAReg + m_dwSectCntReasonOffset, bValue);
    }
    // Write Sector Number register
    inline void WriteSectorNumber(BYTE bValue) {
        ATA_WRITE_BYTE(m_pATAReg + m_dwSectNumOffset, bValue);
    }
    // Read/write Cylinder Low, Cylinder High register
    inline BYTE GetLowCount() {
        return ATA_READ_BYTE(m_pATAReg+ m_dwByteCountLowOffset);
    }
    inline void WriteLowCount(BYTE bValue) {
        ATA_WRITE_BYTE(m_pATAReg + m_dwByteCountLowOffset, bValue);
    }
    inline BYTE GetHighCount() {
        return ATA_READ_BYTE(m_pATAReg+ m_dwByteCountHighOffset);
    }
    inline void WriteHighCount(BYTE bValue) {
        ATA_WRITE_BYTE(m_pATAReg + m_dwByteCountHighOffset, bValue);
    }
    inline WORD GetCount() {
        return GetLowCount() + ((WORD)GetHighCount() << 8);
    }
    // Set DEV bit in Device/Head register
    inline void SelectDevice() {
        ATA_WRITE_BYTE(m_pATAReg + m_dwDrvHeadOffset, (m_dwDevice == 0 ) ? ATA_HEAD_DRIVE_1 : ATA_HEAD_DRIVE_2);
    }
    // Write Device/Head register
    inline void SetDriveHead(BYTE bDriveHead) {
        ATA_WRITE_BYTE(m_pATAReg + m_dwDrvHeadOffset, bDriveHead);
    }
    inline void WriteDriveHeadReg(BYTE bValue) {
        ATA_WRITE_BYTE(m_pATAReg + m_dwDrvHeadOffset, bValue);
    }
    // Read Status register (does not clear pending interrupt)
    inline BYTE GetBaseStatus() {
        BYTE bStatus = ATA_READ_BYTE(m_pATAReg + m_dwCommandStatusOffset);
        if (ZONE_CELOG) CeLogData(TRUE, CELID_ATAPI_BASESTATUS, &bStatus, sizeof(bStatus), 0, CELZONE_ALWAYSON, 0, FALSE);
        return bStatus;
    }
    // Write Command register
    inline void WriteCommand(BYTE bCommand) {
        ATA_WRITE_BYTE(m_pATAReg + m_dwCommandStatusOffset, bCommand);
    }
    // Read/write Alternate Status register (read clears pending interrupt)
    inline BYTE GetAltStatus() {
        return (BYTE) ATA_READ_BYTE(m_pATARegAlt + m_dwAltStatusOffset);
    }
    inline void WriteAltDriveController(BYTE bData) {
        ATA_WRITE_BYTE(m_pATARegAlt + m_dwAltDrvCtrl, bData);
    }

    // ------------------------------------------------------------------------
    // ------------------------------------------------------------------------

    // DSK_Init calls this before Init; set up register blocks
    virtual VOID ConfigureRegisterBlock(DWORD dwStride);
    // Called by DSK_Init
    virtual BOOL Init(HKEY hActiveKey);
    // Reset controller, enable interrupts, call Identify
    virtual BOOL InitController(BOOL fForce = FALSE);
    // Return STORAGEDEVICEINFO structure
    virtual DWORD GetDeviceInfo(PIOREQ pIOReq);
    // Handle standard (diskio.h), non-CD, non-DVD IOCTL-s
    virtual DWORD MainIoctl(PIOREQ pIOReq);
    // Wait for Status register DRQ bit to assert
    virtual BOOL WaitForDRQ();
    // Wait for a specified Status register bit to assert/negate
    virtual BOOL WaitForDisc(BYTE bStatusType, DWORD dwTimeOut, DWORD dwPeriod = 0);
    // DMA I/O
    virtual DWORD ReadWriteDiskDMA(PIOREQ pIOReq, BOOL fRead = TRUE);
    // Instantiate a CDiskPower object
    virtual CDiskPower *GetDiskPowerInterface(void);
    // Eventually called in response to an IOCTL_POWER_SET
    virtual BOOL SetDiskPowerState(CEDEVICE_POWER_STATE newDx);
    // Base wake up function
    virtual BOOL WakeUp();
    // Acquire this instance's critical section
    virtual void TakeCS();
    // Release this instance's critical section
    virtual void ReleaseCS();
    // Called by DSK_Init; this information is used by CDiskPower
    void SetActiveKey(TCHAR *szActiveKey);
    // Called by DSK_Init; this information is used by CDiskPower
    void SetDeviceKey(TCHAR *szDeviceKey);

    // ------------------------------------------------------------------------
    // ------------------------------------------------------------------------

    // Wait for interrupt
    virtual BOOL WaitForInterrupt(DWORD dwTimeOut) = 0;
    // Enable device interrupt
    virtual void EnableInterrupt() = 0;
    // Setup DMA transfer
    virtual BOOL SetupDMA( PSG_BUF pSgBuf, DWORD dwSgCount, BOOL fRead) = 0;
    // Start DMA transfer
    virtual BOOL BeginDMA(BOOL fRead) = 0;
    // End DMA transfer
    virtual BOOL EndDMA() = 0;
    // Abort DMA transfer
    virtual BOOL AbortDMA() = 0;
    // Complete DMA transfer
    virtual BOOL CompleteDMA(PSG_BUF pSgBuf, DWORD dwSgCount, BOOL fRead) = 0;
    virtual void SetDeviceTiming(DWORD dwDevice, BYTE dwPioMode, BYTE dwDmaMode, BYTE dwUdmaMode);

    // ------------------------------------------------------------------------
    // ------------------------------------------------------------------------

    // Core device/CDisk initialize function
    BOOL Identify();
    // Determine whether this device is present on the channel
    BOOL IsDevicePresent();

    // Wait for Status register BSY bit to negate
    BYTE WaitOnBusy(BOOL fBase);
    // Sleep for @dwTime milliseconds
    void StallExecution(DWORD dwTime);
    // Return interrupt state?
    WORD CheckIntrState();

	void AnalyzeDeviceCapabilities (PIDENTIFY_DATA pId, BYTE bTransferMode);

    // ------------------------------------------------------------------------
    // ------------------------------------------------------------------------

    // Perform ATA/ATAPI soft-reset
    BOOL ResetController(BOOL bSoftReset = FALSE);
    // This function sets the transfer mode to @dwMode; For more information
    // on transfer mode encodings, see ATA/ATAPI-6 R3B 8.46.11 (Set transfer mode)
    BOOL SetTransferMode(BYTE bMode);
    // Send EXECUTE DEVICE DIAGNOSTIC command; Determine whether this device is
    // an ATA device or an ATAPI device
    BOOL SendExecuteDeviceDiagnostic(PBYTE pbDiagnosticCode, PBOOL pfIsAtapi);
    // Send IDENTIFY DEVICE/IDENTIFY PACKET DEVICE command
    BOOL SendIdentifyDevice(BOOL fIsAtapi);
    // Enable write cache through SET FEATURES
    BOOL SetWriteCacheMode(BOOL fEnable);
    // Enable read look-ahead through SET FEATURES
    BOOL SetLookAhead();
    // Non-DMA I/O
    DWORD ReadWriteDisk(PIOREQ pIOReq, BOOL fRead = TRUE);
    // Issue FLUSH CACHE
    DWORD FlushCache();
    // Send read/write command
    BOOL SendIOCommand(DWORD dwStartSector, DWORD dwNumberOfSectors, BYTE bCmd);
    // Issue Power Management command and implements the non-data command protocol
    BOOL SendDiskPowerCommand(BYTE bCmd, BYTE bParam = 0);
    // Issue ATAPI soft-reset
    void AtapiSoftReset();

    // ------------------------------------------------------------------------
    // ------------------------------------------------------------------------

    // Increment m_dwOpenCount; references to device
    void Open();
    // Decrement m_dwOpenCount; references to device
    void Close();
    // Return DISK_INFO structure
    DWORD GetDiskInfo(PIOREQ pIOReq);
    // Set ISK_INFO structure
    DWORD SetDiskInfo(PIOREQ pIOReq);
    // Return mount name, e.g., "Hard Disk"
    DWORD GetDiskName(PIOREQ pIOReq);
    // Return STORAGE_IDENTIFICATION
    DWORD GetStorageId(PIOREQ pIOReq);
    // Handle DISK_IOCTL_INITIALIZED
    BOOL PostInit(PPOST_INIT_BUF pPostInitBuf);
    // Intercept IOCTL_POWER_Xxx-s (and instantiates a CDiskPower object during
    // IOCTL_POWER_CAPABILITIES) and forwards all other IOCTL-s to MainIoctl
    BOOL PerformIoctl(PIOREQ pIOReq);
    // Validate pointers embedded in scatter/gather requests
    BOOL static ValidateSg(PSG_REQ pSgReq, DWORD InBufLen);
    BOOL static ValidateSg(PCDROM_READ pCdrom, DWORD InBufLen);

    // ------------------------------------------------------------------------
    // ------------------------------------------------------------------------

    // Determine if Power Management is supported by examining the IDENTIFY
    // DEVICE information
    BOOL IsPMSupported(void);
    // Determines if Power Management is enabled by examining the IDENTIFY
    // DEVICE information
    BOOL IsPMEnabled(void);

    void PowerUp() { m_dwDeviceFlags &= ~DFLAGS_DEVICE_PWRDN; }
    void PowerDown() { m_dwDeviceFlags |= DFLAGS_DEVICE_PWRDN; }

    // ------------------------------------------------------------------------
    // ------------------------------------------------------------------------

    // Return m_fAtapiDevice
    BOOL IsAtapiDevice();
    // Check the IDENTIFY DEVICE data to see if the device is a CD-ROM device
    BOOL IsCDRomDevice();
    // Check the IDENTIDY DEVICE data to see if the device is a disk device
    BOOL IsDiskDevice();
    // Check the IDENTIDY DEVICE data to see if the device is a removable media device
    BOOL IsRemoveableDevice();
    // Check the IDENTIFY DEVICE data to see if the device supports DMA and
    // whether m_fDMAActive is TRUE
    BOOL IsDMASupported();
    // Check the IDENTIFY DEVICE data to see the packet size supported by the device
    WORD GetPacketSize();
    // Check the IDENTIFY DEVICE data to see if a portion of it is valid
    BOOL IsValidCommandSupportInfo();
    // Check the IDENTIFY DEVICE data to see if the device supports the write cache feature
    BOOL IsWriteCacheSupported();
    // Not used
    BOOL IsDRQTypeIRQ();
    // Not used
    BOOL IsDVDROMDevice();

};

#endif // _DISKMAIN_H_

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产高清一区二区三区| 国产精品综合二区| 337p粉嫩大胆噜噜噜噜噜91av | 久久精品日产第一区二区三区高清版 | 在线欧美一区二区| 在线观看日韩毛片| 在线观看日韩av先锋影音电影院| **欧美大码日韩| 99精品国产91久久久久久| 国产精品灌醉下药二区| 色天使色偷偷av一区二区| 亚洲一区二三区| 555夜色666亚洲国产免| 日韩二区三区四区| 91精品国产91热久久久做人人| 美女视频一区在线观看| 久久夜色精品国产欧美乱极品| 国产东北露脸精品视频| 国产精品成人一区二区艾草 | 欧美日本一区二区三区| 午夜一区二区三区在线观看| 欧美一区二区成人| 国产高清久久久| 亚洲免费资源在线播放| 欧美一区二区三区电影| 国产91精品一区二区| 夜夜嗨av一区二区三区中文字幕| 欧美精品国产精品| 国产福利91精品| 亚洲午夜电影在线观看| 精品少妇一区二区三区在线视频| 国产福利一区在线观看| 亚洲精品综合在线| 欧美sm极限捆绑bd| 一本大道综合伊人精品热热 | 一区二区欧美在线观看| 色综合激情五月| 综合av第一页| 国产精品一区二区三区四区| 亚洲精品va在线观看| 26uuu国产一区二区三区| 91看片淫黄大片一级在线观看| 麻豆精品一区二区| 国产精品久久久久婷婷二区次| 五月综合激情婷婷六月色窝| 久久亚洲私人国产精品va媚药| 日韩电影在线免费| 91国偷自产一区二区使用方法| 欧美极品另类videosde| 午夜欧美一区二区三区在线播放| 高清久久久久久| 欧美一二三四在线| 亚洲激情自拍偷拍| 不卡的电视剧免费网站有什么| 日韩午夜电影在线观看| 国产乱子轮精品视频| 精品精品国产高清a毛片牛牛| 91精品办公室少妇高潮对白| 免费的成人av| 亚洲一区二区在线播放相泽| 26uuu亚洲| 欧美一区二区在线免费观看| 91色porny| 欧洲一区二区av| 国产乱妇无码大片在线观看| 中文字幕色av一区二区三区| 美女视频网站久久| 日本一区二区三级电影在线观看 | 日韩视频免费观看高清完整版| 中文字幕在线一区| 欧美精品黑人性xxxx| 色婷婷精品久久二区二区蜜臀av| 美女视频黄频大全不卡视频在线播放| 亚洲黄一区二区三区| 日韩欧美一区在线观看| 色婷婷久久久亚洲一区二区三区| 国产精品中文欧美| 日韩国产精品大片| 亚洲综合免费观看高清完整版| 日韩一区二区在线播放| 欧美视频三区在线播放| 成人激情动漫在线观看| 成人av网站大全| 国产精品18久久久久久vr| 蜜臀av一区二区三区| 亚洲成av人片一区二区三区| 欧美亚一区二区| 国产一区二三区| 性做久久久久久久久| 国产精品短视频| 欧美另类变人与禽xxxxx| 国产成人在线色| 亚洲午夜免费电影| 久久噜噜亚洲综合| 91麻豆精品国产自产在线观看一区| 韩国欧美国产1区| 亚洲一区二区在线观看视频| 国产婷婷色一区二区三区四区| 精品无人区卡一卡二卡三乱码免费卡| 一区二区三区不卡在线观看| 亚洲国产日韩精品| 一区二区三区国产| 亚洲国产欧美在线| 亚洲码国产岛国毛片在线| 亚洲免费观看高清完整版在线观看 | 777a∨成人精品桃花网| 欧美日韩一区二区在线观看视频 | 美女性感视频久久| 亚洲高清免费视频| 亚洲综合一区二区三区| 一区二区高清在线| 亚洲高清三级视频| 全国精品久久少妇| 午夜国产精品一区| 五月天丁香久久| 图片区小说区区亚洲影院| 五月天亚洲精品| 久热成人在线视频| 不卡av在线免费观看| 99久久国产免费看| 欧美日韩第一区日日骚| 欧美一区二区视频网站| 中文字幕免费观看一区| 亚洲免费观看高清完整版在线观看| 日韩在线一区二区| 国产精品1024| 成人av小说网| 欧美精品aⅴ在线视频| 亚洲精品在线电影| 国产精品国产a| 亚洲精品美腿丝袜| 蜜桃视频在线观看一区二区| 国产精品99久久久久| 久久精品一区二区三区四区| 国产精品国产三级国产专播品爱网 | 美女国产一区二区三区| 激情亚洲综合在线| 成+人+亚洲+综合天堂| 99精品视频在线观看| 日韩一区二区三区免费观看| 国产亚洲精品aa| 亚洲福利视频三区| 欧美熟乱第一页| av影院午夜一区| 欧美亚洲一区三区| 26uuu国产在线精品一区二区| 国产精品成人免费| 日韩电影在线一区二区三区| 成人久久18免费网站麻豆| 91精品国产综合久久精品性色| 2023国产精品自拍| 亚洲综合图片区| 国产一区二区女| 国产成+人+日韩+欧美+亚洲| 欧美一二区视频| 亚洲精品国产视频| 国产一区二区三区香蕉| 欧美亚洲愉拍一区二区| 亚洲国产岛国毛片在线| 亚洲成av人综合在线观看| 成人午夜激情片| 制服.丝袜.亚洲.中文.综合| 久久只精品国产| 日韩黄色一级片| 色狠狠综合天天综合综合| 国产欧美日韩不卡免费| 日韩va欧美va亚洲va久久| 91欧美一区二区| 国产欧美一区二区精品久导航| 三级一区在线视频先锋| 色悠悠久久综合| 久久综合久久综合亚洲| 日本系列欧美系列| 欧美日韩在线一区二区| 亚洲欧美欧美一区二区三区| 国产乱码精品一区二区三| 日韩免费视频一区二区| 天堂影院一区二区| 色哟哟欧美精品| 国产精品久久午夜| 久久疯狂做爰流白浆xx| 欧美天堂一区二区三区| 亚洲人成7777| 99re这里只有精品视频首页| 久久久久久免费网| 狠狠狠色丁香婷婷综合激情| 国产精品一二三四五| 亚洲香肠在线观看| 欧美激情一区二区三区不卡| 日本欧美加勒比视频| 午夜精品福利一区二区三区蜜桃| 欧美精品一区二区在线观看| 欧美中文字幕一区二区三区亚洲| 亚洲国产色一区| 国产精品全国免费观看高清| 51精品视频一区二区三区| 国产91对白在线观看九色| 亚洲国产日韩一级| 亚洲综合在线五月| 日韩成人午夜电影|