 бомж (24.01.2017 23:17, просмотров: 392) ответил 0men на это точно, и вообще непонятно другое.. как выглядит тип  (структура) PDEVICEINSTANCE..
 бомж (24.01.2017 23:17, просмотров: 392) ответил 0men на это точно, и вообще непонятно другое.. как выглядит тип  (структура) PDEVICEINSTANCE..
PDEVICEINSTANCE выглядит так: 
/*****************************************************************************/
/*! Structure defining a physical device passed to the toolkit. Passing it,
*   will create all logical device associated with this instance             */
/*****************************************************************************/
typedef struct DEVICEINSTANCEtag
{
  uint32_t                  ulPhysicalAddress;      /*!< Physical address of the cifX card                        */
  uint8_t                   bIrqNumber;             /*!< IRQ number assigned to card                              */
  int                       fIrqEnabled;            /*!< !=0 if the IRQ is used on this device                    */
  int                       fPCICard;               /*!< !=0 if the card is a PCI card (netX directly connected to PCI)
                                                           ,this will reset the netX if eDeviceType is AUTODETECT or RAMBASE */
  int                       fModuleLoad;            /*!< This devices works with modules */
  CIFX_TOOLKIT_DEVICETYPE_E eDeviceType;            /*!< Type of the device. If set to AUTODETECT it will be updated during
                                                         cifXAddDevice                                                       */
  PFN_CIFXTK_NOTIFY         pfnNotify;              /*!< Function to notify user of different states in the toolkit, to allow
                                                         memory controller reconfiguration, etc. */
  void*                     pvOSDependent;          /*!< OS dependent pointer to device identification (used for PCI read/write request). This parameter must allow the OS/User to identify the card and access it's PCI registers */
  uint8_t*                  pbDPM;                  /*!< Virtual/usable pointer to the cards DPM              */
  uint32_t                  ulDPMSize;              /*!< Size of the cards DPM                                */
  CIFX_TOOLKIT_CHIPTYPE_E   eChipType;              /*!< Type of chip */
  char                      szName[CIFx_MAX_INFO_NAME_LENTH]; /*!< Default name of the card, must be inserted by user */
  char                      szAlias[CIFx_MAX_INFO_NAME_LENTH];/*!< Alias name of the card (must be inserted by user   */
  int32_t                   lInitError;             /*!< Initialization error of the card                         */
  PNETX_GLOBAL_REG_BLOCK    ptGlobalRegisters;      /*!< Pointer to the global host registers (only available on PCI)  */
  uint32_t                  ulSerialNumber;         /*!< Serial number of the card (read on startup)        */
  uint32_t                  ulDeviceNumber;         /*!< Device number of the card (read on startup)        */
  uint32_t                  ulSlotNumber;           /*!< Slot number on card (read on startup)              */
  uint8_t*                  pbHandshakeBlock;       /*!< Pointer to start of Handshake block (NULL if no handshake block was found */
  int                       iIrqToDsrBuffer;        /*!< IRQ to DSR Buffer number to use               */
  IRQ_TO_DSR_BUFFER_T       atIrqToDsrBuffer[2];    /*!< IRQ to DSR Buffers                            */
  uint32_t                  ulIrqCounter;           /*!< Number of interrupts processed on this device */
  CHANNELINSTANCE           tSystemDevice;          /*!< Every card has at least one SystemDevice             */
  uint32_t                  ulCommChannelCount;     /*!< Number of fount communication channels on the card   */
  CHANNELINSTANCE**         pptCommChannels;        /*!< Array of all found channels                          */
#ifdef CIFX_TOOLKIT_DMA
  /* DMA Buffer Structure */
  uint32_t                  ulDMABufferCount;                     /*!< Number of available DMA buffers  */
  CIFX_DMABUFFER_T          atDmaBuffers[CIFX_DMA_BUFFER_COUNT];  /*!< DMA buffer definition for the device */
#endif /* CIFX_TOOLKIT_DMA */
  /* Synch handling */
  CIFX_SYNCH_DATA_T         tSyncData;              /*!< Synchronisation structure */
  int                       fResetActive;           /*!< !=0 if a reset is pending on device (DEV_DoSystemStart) */
  /* Extended memory (additional target memory) */
  uint8_t*                  pbExtendedMemory;       /*!< Virtual/usable pointer to an extended memory area       */
  uint32_t                  ulExtendedMemorySize;   /*!< Size of the extended memory area                        */
#ifdef CIFX_TOOLKIT_HWIF
  PFN_HWIF_MEMCPY        pfnHwIfRead;
  PFN_HWIF_MEMCPY        pfnHwIfWrite;
#endif /* CIFX_TOOLKIT_HWIF */
} DEVICEINSTANCE, *PDEVICEINSTANCE;
memento mori