開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
C
程式碼(Code):(請善用置底文網頁, 記得排版)
補充說明(Supplement):
求救一下小公司頂天沒人可以問...@Q@
要取得 PciVidDid 但是不知道API看不是很懂程式為何這樣寫
老人用的Function:
Status = PciIo->Pci.Read(PciIo, EfiPciIoWidthUint32, 0, 1, &ROMVidDid);
必須要知道 5個參數要輸入啥
PciIo->Pci.Read(PciIo, EfiPciIoWidthUint32, 0, 1, &ROMVidDid);
==>追蹤到
IN EFI_PCI_IO_PROTOCOL *PciIo
(1. IN 是啥呢...C語言好像沒這東西..這是啥呢?)
==>追蹤到
typedef struct _EFI_PCI_IO_PROTOCOL {
EFI_PCI_IO_PROTOCOL_CONFIG_ACCESS Pci;
} EFI_PCI_IO_PROTOCOL;
==>追蹤到
typedef struct {
EFI_PCI_IO_PROTOCOL_CONFIG Read;
EFI_PCI_IO_PROTOCOL_CONFIG Write;
} EFI_PCI_IO_PROTOCOL_CONFIG_ACCESS;
==>追蹤到
typedef
EFI_STATUS
(EFIAPI *EFI_PCI_IO_PROTOCOL_CONFIG) (
IN struct _EFI_PCI_IO_PROTOCOL *This,
IN EFI_PCI_IO_PROTOCOL_WIDTH Width,
IN UINT32 Offset,
IN UINTN Count,
IN OUT VOID *Buffer
);
得知: *This,Width,Offset.*Buffer
未知: Count功能
2. typedef structA (structB *ptr)(.....); 這啥怪獸? 傻眼...@_@
3. IN OUT VOID *Buffer 這是啥鬼T_T? 哭哭...
延伸:想知道EFIAPI是啥
==>追蹤到
typedef unsigned int EFI_STATUS;
EFIAPI (4000多個...看不下去GG!!)