2.2.67 FAX_EVENT_EX

The FAX_EVENT_EX structure defines information about asynchronous events delivered to applications that have registered to receive notification of fax events. This structure is passed as a byte array argument to FAX_ClientEventQueueEx (section 3.2.4.3).

This data structure is custom marshaled as follows and uses the custom-marshaling rules defined in section 2.2.1.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

Fixed_Portion (56 bytes)

...

...

...

Variable_Data (variable)

...

Fixed_Portion (56 bytes):


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

dwSizeOfStruct

TimeStamp

...

EventType

Fixed_Portion_of_EventInfo (40 bytes)

...

...

...

dwSizeOfStruct (4 bytes): A DWORD ([MS-DTYP] section 2.2.9) that contains the size, in bytes, of this structure. MUST be set to 56 bytes.

TimeStamp (8 bytes): A FILETIME ([MS-DTYP] section 2.3.3) structure that contains the time the fax server generated the event.

EventType (4 bytes): One of the FAX_ENUM_EVENT_TYPE (section 2.2.63) values that indicates the type of event. Only a single bit is set in this value, thus there is notification for only a single event per value. This field defines which field of the EventInfo union is used. For the FAX_EVENT_TYPE_FXSSVC_ENDED event, none of the EventInfo union fields are used. This field MUST NOT be set to FAX_EVENT_TYPE_LEGACY.

Fixed_Portion_of_EventInfo (40 bytes): The Fixed_Portion of a union containing information according to the event type.

For the FAX_EVENT_TYPE_IN_QUEUE, FAX_EVENT_TYPE_OUT_QUEUE, FAX_EVENT_TYPE_IN_ARCHIVE, and FAX_EVENT_TYPE_OUT_ARCHIVE events specified in the FAX_ENUM_EVENT_TYPE enumeration, the union contains a FAX_EVENT_EX_JOB_INFO (section 2.2.67.1) structure with status about an existing job in the queue or archives.

For the FAX_EVENT_TYPE_CONFIG event, the union contains a FAX_EVENT_EX_CONFIG_TYPE (section 2.2.67.2) enumeration value that indicates the type of the configuration that has changed. The receiver of this notification SHOULD call FAX_GetConfiguration (section 3.1.4.1.36) to get the new configuration.

For the FAX_EVENT_TYPE_ACTIVITY event, the union contains a FAX_EVENT_EX_ACTIVITY_INFO (section 2.2.67.3) structure that contains information about the server activity that has changed.

For the FAX_EVENT_TYPE_NEW_CALL event, the union contains a FAX_EVENT_EX_NEW_CALL (section 2.2.67.4) structure that contains information about the new incoming call detected by the fax service.

For the FAX_EVENT_TYPE_QUEUE_STATE event, the union contains a FAX_EVENT_EX_QUEUE_STATES (section 2.2.67.5) structure with the queue status.

For the FAX_EVENT_TYPE_DEVICE_STATUS event, the union contains a FAX_EVENT_EX_DEVICE_STATUS (section 2.2.67.6) structure that indicates the status of the fax device.

The six possible variants for the Fixed_Portion blocks of the EventInfo union are described in the next six subsections. The size of the EventInfo field is always 40 bytes, including padding. The size of 40 bytes is dictated by the size of the largest Fixed_Portion field in the union.

Variable_Data (variable):


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

Variable_Data of EventInfo (variable)

...

Variable_Data of EventInfo (variable): The Variable_Data of the EventInfo union. The six possible variants for the Variable_Data blocks of the EventInfo union are described in the next six sub-sections.