<p>There's a requirement that we will need to support querying a local SQL Server database for new data when the database is updated.  Since these are external SQL Server databases, we may not be able to use SQL Server Notification Services nor can we make any changes to the database.   </p>

<p>My basic idea is to watch for data being written to the database to trigger a query (instead of polling at set intervals).  However, I'm having a tough time trying to figure out how I could get the WriteFile call from the SqlServr.exe process (as can be monitored in tools such as Sysinternals' Process Monitor).  Can anyone direct me to which Win32 functions may be able to help me with this? </p>

I don't think going through the file system would be the best option. Even if you could get access to file system activity, I would think it would be difficult to discern what file operation added data vs any other type of file activity like maintenance, index defrags, etc.
A possible alternative would be to look into the
Microsoft.SqlServer.Management.Trace Namespace
as a mechanism to hook into SQL Server and look for the specific events that you want to respond to. I would be cautions however of the performance impact this may cause.