Here is code to prove it works at least with JFS (I have all my files on JFS partitions):
#define INCL_BASE
#include <os2.h>
#include <stdio.h>
#define FIL_QUERYALLEAS 4
#define BUFSIZE 1024UL * 128
int main(int argc,char *argv[])
{
EAOP2 eaop={0};
PFEA2 pFEA = NULL;
ULONG oNextEntryOffset;
APIRET rc = NO_ERROR;
ULONG i=0;
PUCHAR pHexValueByte = NULL;
if (argc != 2) {
return 1;
} /* endif */
rc = DosAllocMem((PPVOID)&eaop.fpFEA2List,BUFSIZE,PAG_COMMIT | PAG_READ | PAG_WRITE);
if (NO_ERROR == rc) {
eaop.fpFEA2List->cbList = BUFSIZE;
rc = DosQueryPathInfo(argv[1],FIL_QUERYALLEAS,&eaop,sizeof(eaop));
if (NO_ERROR == rc && eaop.fpFEA2List->cbList > sizeof(eaop.fpFEA2List->cbList)) {
pFEA = eaop.fpFEA2List->list;
do {
oNextEntryOffset = pFEA->oNextEntryOffset;
printf("Name:%s,Value:",pFEA->szName);
pHexValueByte = pFEA->szName+sizeof(UCHAR)+pFEA->cbName;
for (i=0;i<pFEA->cbValue;i++,pHexValueByte++ ) {
printf("%.2x ",*pHexValueByte);
} /* endfor */
printf("\n");
pFEA = (PFEA2)((PCHAR)pFEA + oNextEntryOffset);
} while (oNextEntryOffset ); /* enddo */
} /* endif */
rc = DosFreeMem(eaop.fpFEA2List);
} /* endif */
return 0;
}
Pass it a filename and it will print out the EA info as hex bytes (not awfully helpful, obviously but you can crosscheck with what the WPS displays).