⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 atamain.cod

📁 windows CE 的BSP开发包.包含众多的驱动程序和OAL层的开发代码
💻 COD
📖 第 1 页 / 共 5 页
字号:
  00000			 AREA	 |.rdata| { |??_C@_1CM@GOEPMFGL@?$AAA?$AAl?$AAt?$AAe?$AAr?$AAn?$AAa?$AAt?$AAe?$AAS?$AAt?$AAa?$AAt?$AAu?$AAs?$AAO?$AAf?$AAf?$AAs?$AAe@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CM@GOEPMFGL@?$AAA?$AAl?$AAt?$AAe?$AAr?$AAn?$AAa?$AAt?$AAe?$AAS?$AAt?$AAa?$AAt?$AAu?$AAs?$AAO?$AAf?$AAf?$AAs?$AAe@| DCB "A"
	DCB	0x0, "l", 0x0, "t", 0x0, "e", 0x0, "r", 0x0, "n", 0x0, "a"
	DCB	0x0, "t", 0x0, "e", 0x0, "S", 0x0, "t", 0x0, "a", 0x0, "t"
	DCB	0x0, "u", 0x0, "s", 0x0, "O", 0x0, "f", 0x0, "f", 0x0, "s"
	DCB	0x0, "e", 0x0, "t", 0x0, 0x0, 0x0	; `string'

  00000			 AREA	 |.rdata| { |??_C@_1CI@HEEIGOOF@?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAO?$AAf?$AAf?$AAs?$AAe?$AAt?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CI@HEEIGOOF@?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAO?$AAf?$AAf?$AAs?$AAe?$AAt?$AA?$AA@| DCB "D"
	DCB	0x0, "e", 0x0, "v", 0x0, "i", 0x0, "c", 0x0, "e", 0x0, "C"
	DCB	0x0, "o", 0x0, "n", 0x0, "t", 0x0, "r", 0x0, "o", 0x0, "l"
	DCB	0x0, "O", 0x0, "f", 0x0, "f", 0x0, "s", 0x0, "e", 0x0, "t"
	DCB	0x0, 0x0, 0x0				; `string'

  00000			 AREA	 |.rdata| { |??_C@_1BG@NELPJJNN@?$AAI?$AAs?$AAr?$AAH?$AAa?$AAn?$AAd?$AAl?$AAe?$AAr?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BG@NELPJJNN@?$AAI?$AAs?$AAr?$AAH?$AAa?$AAn?$AAd?$AAl?$AAe?$AAr?$AA?$AA@| DCB "I"
	DCB	0x0, "s", 0x0, "r", 0x0, "H", 0x0, "a", 0x0, "n", 0x0, "d"
	DCB	0x0, "l", 0x0, "e", 0x0, "r", 0x0, 0x0, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_1O@MDNCMDKF@?$AAI?$AAs?$AAr?$AAD?$AAl?$AAl?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1O@MDNCMDKF@?$AAI?$AAs?$AAr?$AAD?$AAl?$AAl?$AA?$AA@| DCB "I", 0x0, "s"
	DCB	0x0, "r", 0x0, "D", 0x0, "l", 0x0, "l", 0x0, 0x0, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_1BM@BABJOPKK@?$AAS?$AAp?$AAa?$AAw?$AAn?$AAF?$AAu?$AAn?$AAc?$AAt?$AAi?$AAo?$AAn?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BM@BABJOPKK@?$AAS?$AAp?$AAa?$AAw?$AAn?$AAF?$AAu?$AAn?$AAc?$AAt?$AAi?$AAo?$AAn?$AA?$AA@| DCB "S"
	DCB	0x0, "p", 0x0, "a", 0x0, "w", 0x0, "n", 0x0, "F", 0x0, "u"
	DCB	0x0, "n", 0x0, "c", 0x0, "t", 0x0, "i", 0x0, "o", 0x0, "n"
	DCB	0x0, 0x0, 0x0				; `string'

  00000			 AREA	 |.rdata| { |??_C@_1CK@PKHKJDHK@?$AAS?$AAt?$AAa?$AAt?$AAu?$AAs?$AAP?$AAo?$AAl?$AAl?$AAC?$AAy?$AAc?$AAl?$AAe?$AAP?$AAa?$AAu?$AAs?$AAe@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CK@PKHKJDHK@?$AAS?$AAt?$AAa?$AAt?$AAu?$AAs?$AAP?$AAo?$AAl?$AAl?$AAC?$AAy?$AAc?$AAl?$AAe?$AAP?$AAa?$AAu?$AAs?$AAe@| DCB "S"
	DCB	0x0, "t", 0x0, "a", 0x0, "t", 0x0, "u", 0x0, "s", 0x0, "P"
	DCB	0x0, "o", 0x0, "l", 0x0, "l", 0x0, "C", 0x0, "y", 0x0, "c"
	DCB	0x0, "l", 0x0, "e", 0x0, "P", 0x0, "a", 0x0, "u", 0x0, "s"
	DCB	0x0, "e", 0x0, 0x0, 0x0			; `string'

  00000			 AREA	 |.rdata| { |??_C@_1CI@CKDNEMLE@?$AAS?$AAt?$AAa?$AAt?$AAu?$AAs?$AAP?$AAo?$AAl?$AAl?$AAs?$AAP?$AAe?$AAr?$AAC?$AAy?$AAc?$AAl?$AAe?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CI@CKDNEMLE@?$AAS?$AAt?$AAa?$AAt?$AAu?$AAs?$AAP?$AAo?$AAl?$AAl?$AAs?$AAP?$AAe?$AAr?$AAC?$AAy?$AAc?$AAl?$AAe?$AA?$AA@| DCB "S"
	DCB	0x0, "t", 0x0, "a", 0x0, "t", 0x0, "u", 0x0, "s", 0x0, "P"
	DCB	0x0, "o", 0x0, "l", 0x0, "l", 0x0, "s", 0x0, "P", 0x0, "e"
	DCB	0x0, "r", 0x0, "C", 0x0, "y", 0x0, "c", 0x0, "l", 0x0, "e"
	DCB	0x0, 0x0, 0x0				; `string'

  00000			 AREA	 |.rdata| { |??_C@_1CC@FOJHDLJB@?$AAS?$AAt?$AAa?$AAt?$AAu?$AAs?$AAP?$AAo?$AAl?$AAl?$AAC?$AAy?$AAc?$AAl?$AAe?$AAs?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CC@FOJHDLJB@?$AAS?$AAt?$AAa?$AAt?$AAu?$AAs?$AAP?$AAo?$AAl?$AAl?$AAC?$AAy?$AAc?$AAl?$AAe?$AAs?$AA?$AA@| DCB "S"
	DCB	0x0, "t", 0x0, "a", 0x0, "t", 0x0, "u", 0x0, "s", 0x0, "P"
	DCB	0x0, "o", 0x0, "l", 0x0, "l", 0x0, "C", 0x0, "y", 0x0, "c"
	DCB	0x0, "l", 0x0, "e", 0x0, "s", 0x0, 0x0, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_1CC@BEHBKIBC@?$AAS?$AAo?$AAf?$AAt?$AAR?$AAe?$AAs?$AAe?$AAt?$AAT?$AAi?$AAm?$AAe?$AAo?$AAu?$AAt?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CC@BEHBKIBC@?$AAS?$AAo?$AAf?$AAt?$AAR?$AAe?$AAs?$AAe?$AAt?$AAT?$AAi?$AAm?$AAe?$AAo?$AAu?$AAt?$AA?$AA@| DCB "S"
	DCB	0x0, "o", 0x0, "f", 0x0, "t", 0x0, "R", 0x0, "e", 0x0, "s"
	DCB	0x0, "e", 0x0, "t", 0x0, "T", 0x0, "i", 0x0, "m", 0x0, "e"
	DCB	0x0, "o", 0x0, "u", 0x0, "t", 0x0, 0x0, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_1BK@HCJMIBBG@?$AAD?$AAM?$AAA?$AAA?$AAl?$AAi?$AAg?$AAn?$AAm?$AAe?$AAn?$AAt?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BK@HCJMIBBG@?$AAD?$AAM?$AAA?$AAA?$AAl?$AAi?$AAg?$AAn?$AAm?$AAe?$AAn?$AAt?$AA?$AA@| DCB "D"
	DCB	0x0, "M", 0x0, "A", 0x0, "A", 0x0, "l", 0x0, "i", 0x0, "g"
	DCB	0x0, "n", 0x0, "m", 0x0, "e", 0x0, "n", 0x0, "t", 0x0, 0x0
	DCB	0x0					; `string'

  00000			 AREA	 |.rdata| { |??_C@_1BC@NPAECANO@?$AAV?$AAe?$AAn?$AAd?$AAo?$AAr?$AAI?$AAD?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BC@NPAECANO@?$AAV?$AAe?$AAn?$AAd?$AAo?$AAr?$AAI?$AAD?$AA?$AA@| DCB "V"
	DCB	0x0, "e", 0x0, "n", 0x0, "d", 0x0, "o", 0x0, "r", 0x0, "I"
	DCB	0x0, "D", 0x0, 0x0, 0x0			; `string'

  00000			 AREA	 |.rdata| { |??_C@_1BA@BDHDGOBO@?$AAS?$AAy?$AAs?$AAI?$AAn?$AAt?$AAr?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BA@BDHDGOBO@?$AAS?$AAy?$AAs?$AAI?$AAn?$AAt?$AAr?$AA?$AA@| DCB "S", 0x0
	DCB	"y", 0x0, "s", 0x0, "I", 0x0, "n", 0x0, "t", 0x0, "r", 0x0
	DCB	0x0, 0x0				; `string'

  00000			 AREA	 |.rdata| { |??_C@_17DJGGJCGD@?$AAI?$AAr?$AAq?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_17DJGGJCGD@?$AAI?$AAr?$AAq?$AA?$AA@| DCB "I", 0x0, "r", 0x0, "q", 0x0
	DCB	0x0, 0x0				; `string'

  00000			 AREA	 |.rdata| { |??_C@_1O@ECNENGDC@?$AAL?$AAe?$AAg?$AAa?$AAc?$AAy?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1O@ECNENGDC@?$AAL?$AAe?$AAg?$AAa?$AAc?$AAy?$AA?$AA@| DCB "L", 0x0, "e"
	DCB	0x0, "g", 0x0, "a", 0x0, "c", 0x0, "y", 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?GetIDERegistryValueSet@@YAHPAUHKEY__@@PAU_IDEREG@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?GetIDERegistryValueSet@@YAHPAUHKEY__@@PAU_IDEREG@@@Z| PROC ; GetIDERegistryValueSet

; 365  : {

  00000		 |$L33164|
  00000	e92d4070	 stmdb       sp!, {r4 - r6, lr}
  00004		 |$M33162|
  00004	e1a04001	 mov         r4, r1
  00008	e1a05000	 mov         r5, r0

; 366  :     BOOL fRet;
; 367  : 
; 368  :     DEBUGCHK(NULL != pIdeReg);
; 369  : 
; 370  :     // fetch legacy boolean
; 371  :     fRet = AtaGetRegistryValue(hIDEInstanceKey, REG_VAL_IDE_LEGACY, &pIdeReg->dwLegacy);

  0000c	e59f11dc	 ldr         r1, [pc, #0x1DC]
  00010	e1a02004	 mov         r2, r4
  00014	eb000000	 bl          |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|
  00018	e3500000	 cmp         r0, #0

; 372  :     if (!fRet) {
; 373  :         DEBUGMSG(ZONE_INIT|ZONE_ERROR, (_T(
; 374  :             "Atapi!GetIDERegistryValueSet> Failed to read %s from IDE instance key\r\n"
; 375  :             ), REG_VAL_IDE_LEGACY));
; 376  :         return FALSE;

  0001c	0a00005f	 beq         |$L33161|

; 377  :     }
; 378  :     if (pIdeReg->dwLegacy >= 2) {

  00020	e5943000	 ldr         r3, [r4]
  00024	e3530002	 cmp         r3, #2

; 379  :         DEBUGMSG(ZONE_INIT|ZONE_ERROR, (_T(
; 380  :             "Atapi!GetIDERegistryValueSet> Bad value(%d) for %s in IDE instance key; valid: {0, 1}\r\n"
; 381  :             ), pIdeReg->dwLegacy, REG_VAL_IDE_LEGACY));
; 382  :         return FALSE;

  00028	2a00005c	 bcs         |$L33161|

; 383  :     }
; 384  : 
; 385  :     // fetch IRQ; this value is not mandatory
; 386  :     fRet = AtaGetRegistryValue(hIDEInstanceKey, REG_VAL_IDE_IRQ, &pIdeReg->dwIrq);

  0002c	e59f11b8	 ldr         r1, [pc, #0x1B8]
  00030	e2842004	 add         r2, r4, #4
  00034	e1a00005	 mov         r0, r5
  00038	eb000000	 bl          |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|

; 387  :     if (!fRet) {
; 388  :         pIdeReg->dwIrq = IRQ_UNSPECIFIED;
; 389  :     }
; 390  : 
; 391  :     // fetch SysIntr; this is not mandatory
; 392  :     fRet = AtaGetRegistryValue(hIDEInstanceKey, REG_VAL_IDE_SYSINTR, &pIdeReg->dwSysIntr);

  0003c	e59f11a4	 ldr         r1, [pc, #0x1A4]
  00040	e3500000	 cmp         r0, #0
  00044	03e03000	 mvneq       r3, #0
  00048	e2842008	 add         r2, r4, #8
  0004c	e1a00005	 mov         r0, r5
  00050	05843004	 streq       r3, [r4, #4]
  00054	eb000000	 bl          |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|

; 393  :     if (!fRet) {
; 394  :         pIdeReg->dwSysIntr = SYSINTR_NOP;
; 395  :     }
; 396  : 
; 397  :     // fetch vendor id; this is not mandatory
; 398  :     fRet = AtaGetRegistryValue(hIDEInstanceKey, REG_VAL_IDE_VENDORID, &pIdeReg->dwVendorId);

  00058	e59f1184	 ldr         r1, [pc, #0x184]
  0005c	e3500000	 cmp         r0, #0
  00060	e3a06000	 mov         r6, #0
  00064	e1a00005	 mov         r0, r5
  00068	e284200c	 add         r2, r4, #0xC
  0006c	05846008	 streq       r6, [r4, #8]
  00070	eb000000	 bl          |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|

; 399  :     if (!fRet) {
; 400  :         pIdeReg->dwVendorId = 0;
; 401  :     }
; 402  : 
; 403  :     // fetch DMA alignment; this is not mandatory
; 404  :     fRet = AtaGetRegistryValue(hIDEInstanceKey, REG_VAL_IDE_DMAALIGNMENT, &pIdeReg->dwDMAAlignment);

  00074	e59f1164	 ldr         r1, [pc, #0x164]
  00078	e3500000	 cmp         r0, #0
  0007c	e1a00005	 mov         r0, r5
  00080	e2842010	 add         r2, r4, #0x10
  00084	0584600c	 streq       r6, [r4, #0xC]
  00088	eb000000	 bl          |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|

; 405  :     if (!fRet) {
; 406  :         pIdeReg->dwDMAAlignment = 0;
; 407  :     }
; 408  : 
; 409  :     // fetch soft reset timeout
; 410  :     fRet = AtaGetRegistryValue(hIDEInstanceKey, REG_VAL_IDE_SOFTRESETTIMEOUT, &pIdeReg->dwSoftResetTimeout);

  0008c	e59f1148	 ldr         r1, [pc, #0x148]
  00090	e3500000	 cmp         r0, #0
  00094	e1a00005	 mov         r0, r5
  00098	e2842014	 add         r2, r4, #0x14
  0009c	05846010	 streq       r6, [r4, #0x10]
  000a0	eb000000	 bl          |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|
  000a4	e3500000	 cmp         r0, #0

; 411  :     if (!fRet) {
; 412  :         DEBUGMSG(ZONE_INIT|ZONE_ERROR, (_T(
; 413  :             "Atapi!GetIDERegistryValueSet> Failed to read %s from IDE instance key\r\n"
; 414  :             ), REG_VAL_IDE_SOFTRESETTIMEOUT));
; 415  :         return FALSE;

  000a8	0a00003c	 beq         |$L33161|

; 416  :     }
; 417  : 
; 418  :     // fetch Status register poll cycles
; 419  :     fRet = AtaGetRegistryValue(hIDEInstanceKey, REG_VAL_IDE_STATUSPOLLCYCLES, &pIdeReg->dwStatusPollCycles);

  000ac	e59f1124	 ldr         r1, [pc, #0x124]
  000b0	e2842018	 add         r2, r4, #0x18
  000b4	e1a00005	 mov         r0, r5
  000b8	eb000000	 bl          |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|
  000bc	e3500000	 cmp         r0, #0

; 420  :     if (!fRet) {
; 421  :         DEBUGMSG(ZONE_INIT|ZONE_ERROR, (_T(
; 422  :             "Atapi!GetIDERegistryValueSet> Failed to read %s from IDE instance key\r\n"
; 423  :             ), REG_VAL_IDE_STATUSPOLLCYCLES));
; 424  :         return FALSE;

  000c0	0a000036	 beq         |$L33161|

; 425  :     }
; 426  : 
; 427  :     // fetch Status register polls per cycle
; 428  :     fRet = AtaGetRegistryValue(hIDEInstanceKey, REG_VAL_IDE_STATUSPOLLSPERCYCLE, &pIdeReg->dwStatusPollsPerCycle);

  000c4	e59f1108	 ldr         r1, [pc, #0x108]
  000c8	e284201c	 add         r2, r4, #0x1C
  000cc	e1a00005	 mov         r0, r5
  000d0	eb000000	 bl          |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|
  000d4	e3500000	 cmp         r0, #0

; 429  :     if (!fRet) {
; 430  :         DEBUGMSG(ZONE_INIT|ZONE_ERROR, (_T(
; 431  :             "Atapi!GetIDERegistryValueSet> Failed to read %s from IDE instance key\r\n"
; 432  :             ), REG_VAL_IDE_STATUSPOLLSPERCYCLE));
; 433  :         return FALSE;

  000d8	0a000030	 beq         |$L33161|

; 434  :     }
; 435  : 
; 436  :     // fetch Status register poll cycle pause
; 437  :     fRet = AtaGetRegistryValue(hIDEInstanceKey, REG_VAL_IDE_STATUSPOLLCYCLEPAUSE, &pIdeReg->dwStatusPollCyclePause);

  000dc	e59f10ec	 ldr         r1, [pc, #0xEC]
  000e0	e2842020	 add         r2, r4, #0x20
  000e4	e1a00005	 mov         r0, r5
  000e8	eb000000	 bl          |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|
  000ec	e3500000	 cmp         r0, #0

; 438  :     if (!fRet) {
; 439  :         DEBUGMSG(ZONE_INIT|ZONE_ERROR, (_T(
; 440  :             "Atapi!GetIDERegistryValueSet> Failed to read %s from IDE instance key\r\n"
; 441  :             ), REG_VAL_IDE_STATUSPOLLCYCLEPAUSE));
; 442  :         return FALSE;

  000f0	0a00002a	 beq         |$L33161|

; 443  :     }
; 444  : 
; 445  :     // fetch spawn function
; 446  :     fRet = AtaGetRegistryString(hIDEInstanceKey, REG_VAL_IDE_SPAWNFUNCTION, &pIdeReg->pszSpawnFunction);

  000f4	e59f10d0	 ldr         r1, [pc, #0xD0]
  000f8	e3a03000	 mov         r3, #0
  000fc	e2842024	 add         r2, r4, #0x24
  00100	e1a00005	 mov         r0, r5
  00104	eb000000	 bl          |?AtaGetRegistryString@@YAHPAUHKEY__@@PAGPAPAGK@Z|
  00108	e3500000	 cmp         r0, #0

; 447  :     if (!fRet) {
; 448  :         DEBUGMSG(ZONE_INIT|ZONE_ERROR, (_T(
; 449  :             "Atapi!GetIDERegistryValueSet> Failed to read %s from IDE instance key\r\n"
; 450  :             ), REG_VAL_IDE_SPAWNFUNCTION));
; 451  :         return FALSE;

  0010c	0a000023	 beq         |$L33161|

; 452  :     }
; 453  : 
; 454  :     // fetch ISR dll; this is not mandatory; allocate pszIsrDll
; 455  :     fRet = AtaGetRegistryString(hIDEInstanceKey, REG_VAL_IDE_ISRDLL, &pIdeReg->pszIsrDll, 0);

  00110	e59f10b0	 ldr         r1, [pc, #0xB0]
  00114	e3a03000	 mov         r3, #0
  00118	e2842028	 add         r2, r4, #0x28
  0011c	e1a00005	 mov         r0, r5
  00120	eb000000	 bl          |?AtaGetRegistryString@@YAHPAUHKEY__@@PAGPAPAGK@Z|

; 456  :     if (!fRet) {
; 457  :         pIdeReg->pszIsrDll = NULL;
; 458  :     }
; 459  : 
; 460  :     // fetch ISR handler; this is not mandatory; allocate pszIsrHandler
; 461  :     fRet = AtaGetRegistryString(hIDEInstanceKey, REG_VAL_IDE_ISRHANDLER, &pIdeReg->pszIsrHandler, 0);

  00124	e59f1098	 ldr         r1, [pc, #0x98]
  00128	e3500000	 cmp         r0, #0
  0012c	e1a00005	 mov         r0, r5
  00130	e3a03000	 mov         r3, #0
  00134	e284202c	 add         r2, r4, #0x2C
  00138	05846028	 streq       r6, [r4, #0x28]
  0013c	eb000000	 bl          |?AtaGetRegistryString@@YAHPAUHKEY__@@PAGPAPAGK@Z|

; 462  :     if (!fRet) {
; 463  :         pIdeReg->pszIsrHandler = NULL;
; 464  :     }
; 465  : 
; 466  :     // fetch device control offset; this is not mandatory
; 467  :     fRet = AtaGetRegistryValue(hIDEInstanceKey, REG_VAL_IDE_DEVICECONTROLOFFSET, &pIdeReg->dwDeviceControlOffset);

  00140	e59f1078	 ldr         r1, [pc, #0x78]
  00144	e3500000	 cmp         r0, #0
  00148	e1a00005	 mov         r0, r5
  0014c	e2842030	 add         r2, r4, #0x30
  00150	0584602c	 streq       r6, [r4, #0x2C]
  00154	eb000000	 bl          |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|

; 468  :     if (!fRet) {
; 469  :         // this value is only used by atapipcmcia
; 470  :         pIdeReg->dwDeviceControlOffset = ATA_REG_ALT_STATUS;
; 471  :     }
; 472  : 
; 473  :     // fetch alternate status offset; this is not mandatory
; 474  :     fRet = AtaGetRegistryValue(hIDEInstanceKey, REG_VAL_IDE_ALTERNATESTATUSOFFSET, &pIdeReg->dwAlternateStatusOffset);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -