IOCTL_PSL_NOTIFY (Compact 2013)
10/16/2014
This I/O control message is used by device drivers if a process is exiting, that is, its main thread terminates, while one or more other threads are running. It can also be used when secondary threads that are blocked in a system call do not exit cleanly when requested by the scheduler. This I/O control provides a mechanism for the system call implementers to unblock threads belonging to processes that have been terminated. This message can be sent with COM_IOControl.
Syntax
BOOL COM_IOControl(
DWORD dwOpenData, // used for return value
DWORD dwIoControlCode, // use IOCTL_PSL_NOTIFY
LPVOID lpInBuffer, // pointer to input buffer
DWORD nInBufferSize, // input buffer size
LPVOID lpOutBuffer, // pointer to output buffer
DWORD nOutBufferSize, // output buffer size
LPDWORD lpBytesReturned // number of bytes returned
);
Parameters
- dwOpenData
Not used.
- dwIoControlCode
[in] Control code for the operation. Use IOCTL_PSL_NOTIFY for this operation.
- lpInBuffer
[in] Pointer to a DEVICE_PSL_NOTIFY structure.
- nInBufferSize
[in] Set tosizeof(DEVICE_PSL_NOTIFY)
, the size of lpInBuffer.
- lpOutBuffer
[out] Not used; set to NULL.
- nOutBufferSize
[out] Not used; set to zero.
- lpBytesReturned
[out] Not used; set to NULL.
Return Values
Returns TRUE if successful; otherwise, returns FALSE.
Remarks
Device drivers use this IOCTL to perform custom processing not handled by the XXX_Close (Device Manager) function.
If threads owned by processes that no longer exit are blocked in a call to a driver, the OS uses this I/O control to notify the driver to unblock those threads.
The OS uses this I/O control when all of the following conditions are true:
- The main application thread exits.
- The application has other threads still running.
- The application has open file handles that refer to the device.
Requirements
Header |
pkfuncs.h |