{
	"id": "e2af865f-390f-448b-acce-ad979b964c5f",
	"created_at": "2026-04-06T00:22:10.805666Z",
	"updated_at": "2026-04-10T13:11:58.475366Z",
	"deleted_at": null,
	"sha1_hash": "8e68b611a2e66a8f746469f595745f00e998f6bf",
	"title": "AddMonitor function (Winspool.h) - Win32 apps",
	"llm_title": "",
	"authors": "",
	"file_creation_date": "0001-01-01T00:00:00Z",
	"file_modification_date": "0001-01-01T00:00:00Z",
	"file_size": 48465,
	"plain_text": "AddMonitor function (Winspool.h) - Win32 apps\r\nBy drewbatgit\r\nArchived: 2026-04-05 23:48:22 UTC\r\nThe AddMonitor function installs a local port monitor and links the configuration, data, and monitor files.\r\nBOOL AddMonitor(\r\n _In_ LPTSTR pName,\r\n _In_ DWORD Level,\r\n _In_ LPBYTE pMonitors\r\n);\r\npName [in]\r\nA pointer to a null-terminated string that specifies the name of the server on which the monitor should be\r\ninstalled. For systems that support only local installation of monitors, this string should be NULL.\r\nLevel [in]\r\nThe version of the structure to which pMonitors points. This value must be 2.\r\npMonitors [in]\r\nA pointer to a MONITOR_INFO_2 structure. If the pEnvironment member of the pMonitors structure is\r\nNULL, the current environment of the caller (client), not of the destination (server), is used.\r\nNote that the call will fail if the environment does not match the environment of the server, that is, you can\r\nonly add a monitor that was written for the architecture of the server.\r\nIf the function succeeds, the return value is a nonzero value.\r\nIf the function fails, the return value is zero.\r\nNote\r\nThis is a blocking or synchronous function and might not return immediately. How quickly this function returns\r\ndepends on run-time factors such as network status, print server configuration, and printer driver implementation\r\nfactors that are difficult to predict when writing an application. Calling this function from a thread that manages\r\ninteraction with the user interface could make the application appear to be unresponsive.\r\nThe caller must have the SeLoadDriverPrivilege.\r\nBefore an application calls the AddMonitor function, all files required by the monitor must be copied to the\r\nSYSTEM32 directory.\r\nhttps://learn.microsoft.com/en-us/windows/win32/printdocs/addmonitor\r\nPage 1 of 2\n\nTo determine the port monitors that are currently installed, call the EnumMonitors function.\r\nTo remove a monitor added by AddMonitor, call the DeleteMonitor function.\r\nRequirement Value\r\nMinimum supported client Windows 2000 Professional [desktop apps only]\r\nMinimum supported server Windows 2000 Server [desktop apps only]\r\nHeader Winspool.h (include Windows.h)\r\nLibrary Winspool.lib\r\nDLL Winspool.drv\r\nUnicode and ANSI names AddMonitorW (Unicode) and AddMonitorA (ANSI)\r\nPrinting\r\nPrint Spooler API Functions\r\nDeleteMonitor\r\nEnumMonitors\r\nMONITOR_INFO_2\r\nSource: https://learn.microsoft.com/en-us/windows/win32/printdocs/addmonitor\r\nhttps://learn.microsoft.com/en-us/windows/win32/printdocs/addmonitor\r\nPage 2 of 2",
	"extraction_quality": 1,
	"language": "EN",
	"sources": [
		"MITRE"
	],
	"origins": [
		"web"
	],
	"references": [
		"https://learn.microsoft.com/en-us/windows/win32/printdocs/addmonitor"
	],
	"report_names": [
		"addmonitor"
	],
	"threat_actors": [],
	"ts_created_at": 1775434930,
	"ts_updated_at": 1775826718,
	"ts_creation_date": 0,
	"ts_modification_date": 0,
	"files": {
		"pdf": "https://archive.orkl.eu/8e68b611a2e66a8f746469f595745f00e998f6bf.pdf",
		"text": "https://archive.orkl.eu/8e68b611a2e66a8f746469f595745f00e998f6bf.txt",
		"img": "https://archive.orkl.eu/8e68b611a2e66a8f746469f595745f00e998f6bf.jpg"
	}
}