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

📄 atamain.cod

📁 windows CE 的BSP开发包.包含众多的驱动程序和OAL层的开发代码
💻 COD
📖 第 1 页 / 共 5 页
字号:
  00158	e59f105c	 ldr         r1, [pc, #0x5C]
  0015c	e3500000	 cmp         r0, #0
  00160	e3a06002	 mov         r6, #2
  00164	e1a00005	 mov         r0, r5
  00168	e2842034	 add         r2, r4, #0x34
  0016c	05846030	 streq       r6, [r4, #0x30]
  00170	eb000000	 bl          |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|

; 475  :     if (!fRet) {
; 476  :         // this value is only used by atapipcmcia
; 477  :         pIdeReg->dwAlternateStatusOffset = ATA_REG_DRV_CTRL;
; 478  :     }
; 479  : 
; 480  :     // fetch register stride
; 481  :     fRet = AtaGetRegistryValue(hIDEInstanceKey, REG_VAL_IDE_REGISTERSTRIDE, &pIdeReg->dwRegisterStride);

  00174	e59f103c	 ldr         r1, [pc, #0x3C]
  00178	e3500000	 cmp         r0, #0
  0017c	e1a00005	 mov         r0, r5
  00180	e2842038	 add         r2, r4, #0x38
  00184	05846034	 streq       r6, [r4, #0x34]
  00188	eb000000	 bl          |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|
  0018c	e3500000	 cmp         r0, #0

; 482  :     if (!fRet) {
; 483  :         DEBUGMSG(ZONE_INIT|ZONE_ERROR, (_T(
; 484  :             "Atapi!GetIDERegistryValueSet> Failed to read %s from IDE instance key\r\n"
; 485  :             ), REG_VAL_IDE_REGISTERSTRIDE));
; 486  :         return FALSE;

  00190	0a000002	 beq         |$L33161|

; 487  :     }
; 488  :     if (0 == pIdeReg->dwRegisterStride) {

  00194	e5943038	 ldr         r3, [r4, #0x38]
  00198	e3530000	 cmp         r3, #0
  0019c	1a000002	 bne         |$L32506|
  001a0		 |$L33161|

; 489  :         DEBUGMSG(ZONE_INIT|ZONE_ERROR, (_T(
; 490  :             "Atapi!GetIDERegistryValueSet> Bad value(%d) for %s in IDE instance key; valid: > 0\r\n"
; 491  :             ), pIdeReg->dwRegisterStride, REG_VAL_IDE_REGISTERSTRIDE));
; 492  :         return FALSE;

  001a0	e3a00000	 mov         r0, #0

; 496  : }

  001a4	e8bd4070	 ldmia       sp!, {r4 - r6, lr}
  001a8	e12fff1e	 bx          lr
  001ac		 |$L32506|

; 493  :     }
; 494  : 
; 495  :     return TRUE;

  001ac	e3a00001	 mov         r0, #1

; 496  : }

  001b0	e8bd4070	 ldmia       sp!, {r4 - r6, lr}
  001b4	e12fff1e	 bx          lr
  001b8		 |$L33167|
  001b8	00000000	 DCD         |??_C@_1BO@HNHOPIFG@?$AAR?$AAe?$AAg?$AAi?$AAs?$AAt?$AAe?$AAr?$AAS?$AAt?$AAr?$AAi?$AAd?$AAe?$AA?$AA@|
  001bc	00000000	 DCD         |??_C@_1CM@GOEPMFGL@?$AAA?$AAl?$AAt?$AAe?$AAr?$AAn?$AAa?$AAt?$AAe?$AAS?$AAt?$AAa?$AAt?$AAu?$AAs?$AAO?$AAf?$AAf?$AAs?$AAe@|
  001c0	00000000	 DCD         |??_C@_1CI@HEEIGOOF@?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAO?$AAf?$AAf?$AAs?$AAe?$AAt?$AA?$AA@|
  001c4	00000000	 DCD         |??_C@_1BG@NELPJJNN@?$AAI?$AAs?$AAr?$AAH?$AAa?$AAn?$AAd?$AAl?$AAe?$AAr?$AA?$AA@|
  001c8	00000000	 DCD         |??_C@_1O@MDNCMDKF@?$AAI?$AAs?$AAr?$AAD?$AAl?$AAl?$AA?$AA@|
  001cc	00000000	 DCD         |??_C@_1BM@BABJOPKK@?$AAS?$AAp?$AAa?$AAw?$AAn?$AAF?$AAu?$AAn?$AAc?$AAt?$AAi?$AAo?$AAn?$AA?$AA@|
  001d0	00000000	 DCD         |??_C@_1CK@PKHKJDHK@?$AAS?$AAt?$AAa?$AAt?$AAu?$AAs?$AAP?$AAo?$AAl?$AAl?$AAC?$AAy?$AAc?$AAl?$AAe?$AAP?$AAa?$AAu?$AAs?$AAe@|
  001d4	00000000	 DCD         |??_C@_1CI@CKDNEMLE@?$AAS?$AAt?$AAa?$AAt?$AAu?$AAs?$AAP?$AAo?$AAl?$AAl?$AAs?$AAP?$AAe?$AAr?$AAC?$AAy?$AAc?$AAl?$AAe?$AA?$AA@|
  001d8	00000000	 DCD         |??_C@_1CC@FOJHDLJB@?$AAS?$AAt?$AAa?$AAt?$AAu?$AAs?$AAP?$AAo?$AAl?$AAl?$AAC?$AAy?$AAc?$AAl?$AAe?$AAs?$AA?$AA@|
  001dc	00000000	 DCD         |??_C@_1CC@BEHBKIBC@?$AAS?$AAo?$AAf?$AAt?$AAR?$AAe?$AAs?$AAe?$AAt?$AAT?$AAi?$AAm?$AAe?$AAo?$AAu?$AAt?$AA?$AA@|
  001e0	00000000	 DCD         |??_C@_1BK@HCJMIBBG@?$AAD?$AAM?$AAA?$AAA?$AAl?$AAi?$AAg?$AAn?$AAm?$AAe?$AAn?$AAt?$AA?$AA@|
  001e4	00000000	 DCD         |??_C@_1BC@NPAECANO@?$AAV?$AAe?$AAn?$AAd?$AAo?$AAr?$AAI?$AAD?$AA?$AA@|
  001e8	00000000	 DCD         |??_C@_1BA@BDHDGOBO@?$AAS?$AAy?$AAs?$AAI?$AAn?$AAt?$AAr?$AA?$AA@|
  001ec	00000000	 DCD         |??_C@_17DJGGJCGD@?$AAI?$AAr?$AAq?$AA?$AA@|
  001f0	00000000	 DCD         |??_C@_1O@ECNENGDC@?$AAL?$AAe?$AAg?$AAa?$AAc?$AAy?$AA?$AA@|
  001f4		 |$M33163|

			 ENDP  ; |?GetIDERegistryValueSet@@YAHPAUHKEY__@@PAU_IDEREG@@@Z|, GetIDERegistryValueSet

	EXPORT	|?GetDSKRegistryValueSet@@YAHPAUHKEY__@@PAU_DSKREG@@@Z| ; GetDSKRegistryValueSet
	EXPORT	|??_C@_1BC@PDEHEDHD@?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AAI?$AAd?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_1CA@MAIPHHNH@?$AAI?$AAn?$AAt?$AAe?$AAr?$AAr?$AAu?$AAp?$AAt?$AAD?$AAr?$AAi?$AAv?$AAe?$AAn?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_17KHGEMKGL@?$AAD?$AAM?$AAA?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_1CC@MONHABHI@?$AAD?$AAo?$AAu?$AAb?$AAl?$AAe?$AAB?$AAu?$AAf?$AAf?$AAe?$AAr?$AAS?$AAi?$AAz?$AAe?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_1CC@BILAFHNA@?$AAD?$AAr?$AAq?$AAD?$AAa?$AAt?$AAa?$AAB?$AAl?$AAo?$AAc?$AAk?$AAS?$AAi?$AAz?$AAe?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_1BG@IHLINNBK@?$AAW?$AAr?$AAi?$AAt?$AAe?$AAC?$AAa?$AAc?$AAh?$AAe?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_1BE@PFAPGGKB@?$AAL?$AAo?$AAo?$AAk?$AAA?$AAh?$AAe?$AAa?$AAd?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_1BK@HNHDBFBH@?$AAT?$AAr?$AAa?$AAn?$AAs?$AAf?$AAe?$AAr?$AAM?$AAo?$AAd?$AAe?$AA?$AA@| [ DATA ] ; `string'

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

  00000			 AREA	 |.pdata$$?GetDSKRegistryValueSet@@YAHPAUHKEY__@@PAU_DSKREG@@@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?GetDSKRegistryValueSet@@YAHPAUHKEY__@@PAU_DSKREG@@@Z| } ; comdat associative
|$T33177| DCD	|$L33176|
	DCD	0x40005301

  00000			 AREA	 |.rdata| { |??_C@_1BK@HNHDBFBH@?$AAT?$AAr?$AAa?$AAn?$AAs?$AAf?$AAe?$AAr?$AAM?$AAo?$AAd?$AAe?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BK@HNHDBFBH@?$AAT?$AAr?$AAa?$AAn?$AAs?$AAf?$AAe?$AAr?$AAM?$AAo?$AAd?$AAe?$AA?$AA@| DCB "T"
	DCB	0x0, "r", 0x0, "a", 0x0, "n", 0x0, "s", 0x0, "f", 0x0, "e"
	DCB	0x0, "r", 0x0, "M", 0x0, "o", 0x0, "d", 0x0, "e", 0x0, 0x0
	DCB	0x0					; `string'

  00000			 AREA	 |.rdata| { |??_C@_1BE@PFAPGGKB@?$AAL?$AAo?$AAo?$AAk?$AAA?$AAh?$AAe?$AAa?$AAd?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BE@PFAPGGKB@?$AAL?$AAo?$AAo?$AAk?$AAA?$AAh?$AAe?$AAa?$AAd?$AA?$AA@| DCB "L"
	DCB	0x0, "o", 0x0, "o", 0x0, "k", 0x0, "A", 0x0, "h", 0x0, "e"
	DCB	0x0, "a", 0x0, "d", 0x0, 0x0, 0x0	; `string'

  00000			 AREA	 |.rdata| { |??_C@_1BG@IHLINNBK@?$AAW?$AAr?$AAi?$AAt?$AAe?$AAC?$AAa?$AAc?$AAh?$AAe?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BG@IHLINNBK@?$AAW?$AAr?$AAi?$AAt?$AAe?$AAC?$AAa?$AAc?$AAh?$AAe?$AA?$AA@| DCB "W"
	DCB	0x0, "r", 0x0, "i", 0x0, "t", 0x0, "e", 0x0, "C", 0x0, "a"
	DCB	0x0, "c", 0x0, "h", 0x0, "e", 0x0, 0x0, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_1CC@BILAFHNA@?$AAD?$AAr?$AAq?$AAD?$AAa?$AAt?$AAa?$AAB?$AAl?$AAo?$AAc?$AAk?$AAS?$AAi?$AAz?$AAe?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CC@BILAFHNA@?$AAD?$AAr?$AAq?$AAD?$AAa?$AAt?$AAa?$AAB?$AAl?$AAo?$AAc?$AAk?$AAS?$AAi?$AAz?$AAe?$AA?$AA@| DCB "D"
	DCB	0x0, "r", 0x0, "q", 0x0, "D", 0x0, "a", 0x0, "t", 0x0, "a"
	DCB	0x0, "B", 0x0, "l", 0x0, "o", 0x0, "c", 0x0, "k", 0x0, "S"
	DCB	0x0, "i", 0x0, "z", 0x0, "e", 0x0, 0x0, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_1CC@MONHABHI@?$AAD?$AAo?$AAu?$AAb?$AAl?$AAe?$AAB?$AAu?$AAf?$AAf?$AAe?$AAr?$AAS?$AAi?$AAz?$AAe?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CC@MONHABHI@?$AAD?$AAo?$AAu?$AAb?$AAl?$AAe?$AAB?$AAu?$AAf?$AAf?$AAe?$AAr?$AAS?$AAi?$AAz?$AAe?$AA?$AA@| DCB "D"
	DCB	0x0, "o", 0x0, "u", 0x0, "b", 0x0, "l", 0x0, "e", 0x0, "B"
	DCB	0x0, "u", 0x0, "f", 0x0, "f", 0x0, "e", 0x0, "r", 0x0, "S"
	DCB	0x0, "i", 0x0, "z", 0x0, "e", 0x0, 0x0, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_17KHGEMKGL@?$AAD?$AAM?$AAA?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_17KHGEMKGL@?$AAD?$AAM?$AAA?$AA?$AA@| DCB "D", 0x0, "M", 0x0, "A", 0x0
	DCB	0x0, 0x0				; `string'

  00000			 AREA	 |.rdata| { |??_C@_1CA@MAIPHHNH@?$AAI?$AAn?$AAt?$AAe?$AAr?$AAr?$AAu?$AAp?$AAt?$AAD?$AAr?$AAi?$AAv?$AAe?$AAn?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CA@MAIPHHNH@?$AAI?$AAn?$AAt?$AAe?$AAr?$AAr?$AAu?$AAp?$AAt?$AAD?$AAr?$AAi?$AAv?$AAe?$AAn?$AA?$AA@| DCB "I"
	DCB	0x0, "n", 0x0, "t", 0x0, "e", 0x0, "r", 0x0, "r", 0x0, "u"
	DCB	0x0, "p", 0x0, "t", 0x0, "D", 0x0, "r", 0x0, "i", 0x0, "v"
	DCB	0x0, "e", 0x0, "n", 0x0, 0x0, 0x0	; `string'

  00000			 AREA	 |.rdata| { |??_C@_1BC@PDEHEDHD@?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AAI?$AAd?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BC@PDEHEDHD@?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AAI?$AAd?$AA?$AA@| DCB "D"
	DCB	0x0, "e", 0x0, "v", 0x0, "i", 0x0, "c", 0x0, "e", 0x0, "I"
	DCB	0x0, "d", 0x0, 0x0, 0x0			; `string'
; Function compile flags: /Ogsy

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

  00000		 |?GetDSKRegistryValueSet@@YAHPAUHKEY__@@PAU_DSKREG@@@Z| PROC ; GetDSKRegistryValueSet

; 505  : {

  00000		 |$L33176|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004		 |$M33174|
  00004	e1a04001	 mov         r4, r1
  00008	e1a05000	 mov         r5, r0

; 506  :     BOOL fRet;
; 507  : 
; 508  :     // fetch device ID
; 509  :     fRet = AtaGetRegistryValue(hDSKInstanceKey, REG_VAL_DSK_DEVICEID, &pDskReg->dwDeviceId);

  0000c	e59f1134	 ldr         r1, [pc, #0x134]
  00010	e2842018	 add         r2, r4, #0x18
  00014	eb000000	 bl          |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|
  00018	e3500000	 cmp         r0, #0

; 510  :     if (!fRet) {
; 511  :         DEBUGMSG(ZONE_INIT|ZONE_ERROR, (_T(
; 512  :             "Atapi!GetDSKRegistryValueSet> Failed to read %s from DSK instance key\r\n"
; 513  :             ), REG_VAL_DSK_DEVICEID));
; 514  :         return FALSE;

  0001c	0a00003f	 beq         |$L32517|

; 515  :     }
; 516  :     if (!((0 <= pDskReg->dwDeviceId) && (pDskReg->dwDeviceId <= 3))) {

  00020	e5943018	 ldr         r3, [r4, #0x18]
  00024	e3530003	 cmp         r3, #3
  00028	8a00003c	 bhi         |$L32517|

; 521  :     }
; 522  : 
; 523  :     // fetch interrupt driven I/O boolean
; 524  :     fRet = AtaGetRegistryValue(hDSKInstanceKey, REG_VAL_DSK_INTERRUPTDRIVEN, &pDskReg->dwInterruptDriven);

  0002c	e59f1110	 ldr         r1, [pc, #0x110]
  00030	e1a02004	 mov         r2, r4
  00034	e1a00005	 mov         r0, r5
  00038	eb000000	 bl          |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|
  0003c	e3500000	 cmp         r0, #0

; 525  :     if (!fRet) {
; 526  :         DEBUGMSG(ZONE_INIT|ZONE_ERROR, (_T(
; 527  :             "Atapi!GetDSKRegistryValueSet> Failed to read %s from DSK instance key\r\n"
; 528  :             ), REG_VAL_DSK_INTERRUPTDRIVEN));
; 529  :         return FALSE;

  00040	0a000036	 beq         |$L32517|

; 530  :     }
; 531  :     if (pDskReg->dwInterruptDriven >= 2) {

  00044	e5943000	 ldr         r3, [r4]
  00048	e3530002	 cmp         r3, #2

; 532  :         DEBUGMSG(ZONE_INIT|ZONE_ERROR, (_T(
; 533  :             "Atapi!GetDSKRegistryValueSet> Bad value(%d) for %s in DSK instance key; valid: {0, 1}\r\n"
; 534  :             ), pDskReg->dwInterruptDriven, REG_VAL_DSK_INTERRUPTDRIVEN));
; 535  :         return FALSE;

  0004c	2a000033	 bcs         |$L32517|

; 536  :     }
; 537  : 
; 538  :     // fetch DMA triple
; 539  :     fRet = AtaGetRegistryValue(hDSKInstanceKey, REG_VAL_DSK_DMA, &pDskReg->dwDMA);

  00050	e59f10e8	 ldr         r1, [pc, #0xE8]
  00054	e2842004	 add         r2, r4, #4
  00058	e1a00005	 mov         r0, r5
  0005c	eb000000	 bl          |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|
  00060	e3500000	 cmp         r0, #0

; 540  :     if (!fRet) {
; 541  :         DEBUGMSG(ZONE_INIT|ZONE_ERROR, (_T(
; 542  :             "Atapi!GetDSKRegistryValueSet> Failed to read %s from DSK instance key\r\n"
; 543  :             ), REG_VAL_DSK_DMA));
; 544  :         return FALSE;

  00064	0a00002d	 beq         |$L32517|

; 545  :     }
; 546  :     if (pDskReg->dwDMA >= 3) {

  00068	e5943004	 ldr         r3, [r4, #4]
  0006c	e3530003	 cmp         r3, #3

; 547  :         DEBUGMSG(ZONE_INIT|ZONE_ERROR, (_T(
; 548  :             "Atapi!GetDSKRegistryValueSet> Bad value(%d) for %s in DSK instance key; valid: {0=no DMA, 1=DMA, 2=ATA DMA only}\r\n"
; 549  :             ), pDskReg->dwDMA, REG_VAL_DSK_DMA));
; 550  :         return FALSE;

  00070	2a00002a	 bcs         |$L32517|

; 551  :     }
; 552  : 
; 553  :     // fetch double buffer size
; 554  :     fRet = AtaGetRegistryValue(hDSKInstanceKey, REG_VAL_DSK_DOUBLEBUFFERSIZE, &pDskReg->dwDoubleBufferSize);

  00074	e59f10c0	 ldr         r1, [pc, #0xC0]
  00078	e2842008	 add         r2, r4, #8
  0007c	e1a00005	 mov         r0, r5
  00080	eb000000	 bl          |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|
  00084	e3500000	 cmp         r0, #0

; 555  :     if (!fRet) {
; 556  :         DEBUGMSG(ZONE_INIT|ZONE_ERROR, (_T(
; 557  :             "Atapi!GetDSKRegistryValueSet> Failed to read %s from DSK instance key\r\n"
; 558  :             ), REG_VAL_DSK_DOUBLEBUFFERSIZE));
; 559  :         return FALSE;

  00088	0a000024	 beq         |$L32517|

; 560  :     }
; 561  :     if (
; 562  :         (pDskReg->dwDoubleBufferSize < REG_VAL_DSK_DOUBLEBUFFERSIZE_MIN) ||
; 563  :         (pDskReg->dwDoubleBufferSize > REG_VAL_DSK_DOUBLEBUFFERSIZE_MAX)
; 564  :     ) {

  0008c	e5943008	 ldr         r3, [r4, #8]
  00090	e3530c02	 cmp         r3, #2, 24
  00094	3a000021	 bcc         |$L32517|
  00098	e3530802	 cmp         r3, #2, 16
  0009c	8a00001f	 bhi         |$L32517|

; 565  :         DEBUGMSG(ZONE_INIT|ZONE_ERROR, (_T(
; 566  :             "Atapi!GetDSKRegistryValueSet> Bad value(%d) for %s in DSK instance key; valid: {%d, ..., %d}\r\n"
; 567  :             ), pDskReg->dwDoubleBufferSize, REG_VAL_DSK_DOUBLEBUFFERSIZE, REG_VAL_DSK_DOUBLEBUFFERSIZE_MIN, REG_VAL_DSK_DOUBLEBUFFERSIZE_MAX));
; 568  :         return FALSE;
; 569  :     }
; 570  : 
; 571  :     // fetch DRQ data block size; this has to be validated by a sub-class
; 572  :     fRet = AtaGetRegistryValue(hDSKInstanceKey, REG_VAL_DSK_DRQDATABLOCKSIZE, &pDskReg->dwDrqDataBlockSize);

  000a0	e59f1090	 ldr         r1, [pc, #0x90]
  000a4	e284200c	 add         r2, r4, #0xC
  000a8	e1a00005	 mov         r0, r5
  000ac	eb000000	 bl          |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|
  000b0	e3500000	 cmp         r0, #0

; 573  :     if (!fRet) {
; 574  :         DEBUGMSG(ZONE_INIT|ZONE_ERROR, (_T(
; 575  :             "Atapi!GetDSKRegistryValueSet> Failed to read %s from DSK instance key\r\n"
; 576  :             ), REG_VAL_DSK_DRQDATABLOCKSIZE));
; 577  :         return FALSE;

  000b4	0a000019	 beq         |$L32517|

; 578  :     }
; 579  : 
; 580  :     // fetch write cache boolean
; 581  :     fRet = AtaGetRegistryValue(hDSKInstanceKey, REG_VAL_DSK_WRITECACHE, &pDskReg->dwWriteCache);

  000b8	e59f1074	 ldr         r1, [pc, #0x74]
  000bc	e2842010	 add         r2, r4, #0x10
  000c0	e1a00005	 mov         r0, r5
  000c4	eb000000	 bl          |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|
  000c8	e3500000	 cmp         r0, #0

; 582  :     if (!fRet) {
; 583  :         DEBUGMSG(ZONE_INIT|ZONE_ERROR, (_T(
; 584  :             "Atapi!GetDSKRegistryValueSet> Failed to read %s from DSK instance key\r\n"
; 585  :             ), REG_VAL_DSK_WRITECACHE));
; 586  :         return FALSE;

  000cc	0a000013	 beq         |$L32517|

; 587  :     }
; 588  :     if (pDskReg->dwWriteCache >= 2) {

  000d0	e5943010	 ldr         r3, [r4, #0x10]
  000d4	e3530002	 cmp         r3, #2

; 589  :         DEBUGMSG(ZONE_INIT|ZONE_ERROR, (_T(
; 590  :             "Atapi!GetDSKRegistryValueSet> Bad value(%d) for %s in DSK instance key; valid: {0, 1}\r\n"
; 591  :             ), pDskReg->dw

⌨️ 快捷键说明

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