o
    àý°j6f  ã                	   @   s  d dl mZ d dlmZmZmZmZmZmZm	Z	 d dl
mZmZmZmZmZ d dlmZ d dlmZ edƒZG dd„ deƒZeZG d	d
„ d
eƒZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3d Z4d!Z5d"Z6d#Z7d$Z8d%Z9dZ:dZ;d&Z<d'Z=d(Z>d)Z?d*Z@d+ZAd$ZBd"ZCd,ZDd-ZEd%ZFd#ZGd.ZHdZId ZJdZKd/ZLdZMd0ZNd1ZOd2ZPd3ZQd4ZRd5ZSdZTdZUd6ZVdZWdZXdZYdZZdZ[dZ\d7Z]d8Z^dZ_dZ`d Zad9Zbd3Zcd ZddZedZfdZgdZhdZidZjdZkd:Zld;Zmd8ZndZoG d<d=„ d=eƒZpG d>d?„ d?eƒZqG d@dA„ dAeƒZrG dBdC„ dCeƒZsG dDdE„ dEeƒZtG dFdG„ dGeƒZuG dHdI„ dIeƒZvG dJdK„ dKeƒZwG dLdM„ dMeƒZxG dNdO„ dOeƒZyG dPdQ„ dQeƒZzG dRdS„ dSeƒZ{G dTdU„ dUeƒZ|G dVdW„ dWeƒZ}G dXdY„ dYeƒZ~G dZd[„ d[eƒZG d\d]„ d]eƒZ€G d^d_„ d_eƒZ�G d`da„ daeƒZ‚G dbdc„ dceƒZƒG ddde„ deeƒZ„G dfdg„ dgeƒZ…G dhdi„ dieƒZ†G djdk„ dkeƒZ‡G dldm„ dmeƒZˆG dndo„ doeƒZ‰G dpdq„ dqeƒZŠG drds„ dseƒZ‹G dtdu„ dueƒZŒG dvdw„ dweƒZ�G dxdy„ dyeƒZŽG dzd{„ d{eƒZ�G d|d}„ d}eƒZ�G d~d„ deƒZ‘G d€d�„ d�eƒZ’G d‚dƒ„ dƒeƒZ“G d„d…„ d…eƒZ”G d†d‡„ d‡eƒZ•G dˆd‰„ d‰eƒZ–G dŠd‹„ d‹eƒZ—eˆe‰feŠe‹fe’e“fe”e•feŒe�feŽe�fe�e‘fe–e—fdŒœZ˜d�dŽ„ Z™e	e	e)fd�d�„Zšd‘d’„ Z›e	e	e)e	fd“d”„Zœd e	d e	fd•d–„Z�e	dfd—d˜„Zžd™dš„ ZŸd›dœ„ Z d�dž„ Z¡dŸS ) é    )Úsystem_errors)Ú	ULONGLONGÚUINTÚUSHORTÚLPWSTRÚDWORDÚULONGÚNULL)ÚNDRCALLÚ	NDRSTRUCTÚNDRUNIONÚ
NDRPOINTERÚNDRUniConformantArray)ÚDCERPCException)Úuuidtup_to_bin)z$12345678-1234-ABCD-EF00-0123456789ABz1.0c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚDCERPCSessionErrorNc                 C   s   t  | |||¡ d S )N)r   Ú__init__)ÚselfÚerror_stringÚ
error_codeÚpacket© r   úŠ/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/impacket/dcerpc/v5/rprn.pyr   #   s   zDCERPCSessionError.__init__c                 C   sF   | j }|tjv rtj| d }tj| d }d| j ||f S d| j  S )Nr   é   z'RPRN SessionError: code: 0x%x - %s - %sz+RPRN SessionError: unknown error code: 0x%x)r   r   ÚERROR_MESSAGES)r   ÚkeyÚerror_msg_shortÚerror_msg_verboser   r   r   Ú__str__&   s   

zDCERPCSessionError.__str__)NNN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   "   s    
r   c                   @   ó   e Zd ZdeffZdS )ÚPSTRING_HANDLEÚDataN)r   r    r!   ÚSTRING_HANDLEÚreferentr   r   r   r   r#   4   ó    ÿr#   é   é    i  i   i0  é   é   é@   i  i  r   é   i  i  i  iÿÿ  i   i   i   i   i   i   i   l        i   @i    i   éÿ   é   i   i   i   i ÿ  iÿÿwwiÿÿwi   pi   i    i  @ i  p i   i   i   i   i @  i €  i  € i   i    c                   @   s   e Zd ZdZdd„ ZdS )ÚPRINTER_HANDLE))r$   z20s=b""c                 C   s   | j du rdS dS )NTr+   r*   )Ú_isNDR64)r   r   r   r   ÚgetAlignment§   s   
zPRINTER_HANDLE.getAlignmentN)r   r    r!   Ú	structurer2   r   r   r   r   r0   £   s    r0   c                   @   ó   e Zd ZdZdS )Ú
BYTE_ARRAYÚcN©r   r    r!   Úitemr   r   r   r   r5   ®   ó    r5   c                   @   r"   )ÚPBYTE_ARRAYr$   N)r   r    r!   r5   r&   r   r   r   r   r:   ±   r'   r:   c                   @   ó   e Zd ZdefdeffZdS )ÚDEVMODE_CONTAINERÚcbBufÚpDevModeN)r   r    r!   r   r:   r3   r   r   r   r   r<   ¶   ó    þr<   c                   @   s:   e Zd ZdefdefdefdefdefdefdeffZdS )	ÚSPLCLIENT_INFO_1ÚdwSizeÚpMachineNameÚ	pUserNameÚ
dwBuildNumÚdwMajorVersionÚdwMinorVersionÚwProcessorArchitectureN)r   r    r!   r   r   r   r3   r   r   r   r   r@   ½   s    ùr@   c                   @   r"   )ÚPSPLCLIENT_INFO_1r$   N)r   r    r!   r@   r&   r   r   r   r   rH   È   r'   rH   c                   @   r"   )ÚSPLCLIENT_INFO_2ÚnotUsedN)r   r    r!   r   r3   r   r   r   r   rI   Î   r'   rI   c                   @   r"   )ÚPSPLCLIENT_INFO_2r$   N)r   r    r!   rI   r&   r   r   r   r   rK   Ó   r'   rK   c                   @   sL   e Zd Zdefdefdefdefdefdefdefdefdefd	eff
Zd
S )ÚSPLCLIENT_INFO_3ÚcbSizeÚdwFlagsrB   rC   rD   rE   rF   rG   ÚhSplPrinterN)	r   r    r!   r   r   r   r   r   r3   r   r   r   r   rL   Ø   s    örL   c                   @   r"   )ÚPSPLCLIENT_INFO_3r$   N)r   r    r!   rL   r&   r   r   r   r   rP   æ   r'   rP   c                   @   r"   )ÚDRIVER_INFO_1ÚpNameN)r   r    r!   r%   r3   r   r   r   r   rQ   ì   r'   rQ   c                   @   r"   )ÚPDRIVER_INFO_1r$   N)r   r    r!   rQ   r&   r   r   r   r   rS   ð   r'   rS   c                   @   s4   e Zd ZdefdefdefdefdefdeffZdS )ÚDRIVER_INFO_2ÚcVersionrR   ÚpEnvironmentÚpDriverPathÚ	pDataFileÚpConfigFileN)r   r    r!   r   r   r3   r   r   r   r   rT   ö   ó    úrT   c                   @   r"   )ÚPDRIVER_INFO_2r$   N)r   r    r!   rT   r&   r   r   r   r   r[   ÿ   r'   r[   c                   @   s(   e Zd ZdeffZdefdefdœZdS )ÚDRIVER_INFO_UNIONÚtagÚpNotUsedÚLevel2)r   r-   N)r   r    r!   r   Ú	commonHdrrS   r[   Úunionr   r   r   r   r\     s    ÿ
þr\   c                   @   r;   )ÚDRIVER_CONTAINERÚLevelÚ
DriverInfoN)r   r    r!   r   r\   r3   r   r   r   r   rb     r?   rb   c                   @   s.   e Zd ZdeffZdefdefdefdœZdS )ÚCLIENT_INFO_UNIONr]   ÚpClientInfo1Ú	pNotUsed1Ú	pNotUsed2)r   r-   é   N)	r   r    r!   r   r`   rH   rK   rP   ra   r   r   r   r   re     s    ÿ
ýre   c                   @   r;   )ÚSPLCLIENT_CONTAINERrc   Ú
ClientInfoN)r   r    r!   r   re   r3   r   r   r   r   rj     r?   rj   c                   @   r4   )ÚUSHORT_ARRAYz<HNr7   r   r   r   r   rl   &  r9   rl   c                   @   r"   )ÚPUSHORT_ARRAYr$   N)r   r    r!   rl   r&   r   r   r   r   rm   )  r'   rm   c                   @   s4   e Zd ZdefdefdefdefdefdeffZdS )ÚRPC_V2_NOTIFY_OPTIONS_TYPEÚTypeÚ	Reserved0Ú	Reserved1Ú	Reserved2ÚCountÚpFieldsN)r   r    r!   r   r   rm   r3   r   r   r   r   rn   .  rZ   rn   c                   @   r"   )Ú!PRPC_V2_NOTIFY_OPTIONS_TYPE_ARRAYr$   N)r   r    r!   rn   r&   r   r   r   r   ru   8  r'   ru   c                   @   s(   e Zd ZdefdefdefdeffZdS )ÚRPC_V2_NOTIFY_OPTIONSÚVersionÚReservedrs   ÚpTypesN)r   r    r!   r   ru   r3   r   r   r   r   rv   >  ó    ürv   c                   @   r"   )ÚPRPC_V2_NOTIFY_OPTIONSr$   N)r   r    r!   rv   r&   r   r   r   r   r{   F  r'   r{   c                   @   s2   e Zd ZdZdefdefdefdefdeffZdS )ÚRpcEnumPrintersr   ÚFlagsÚNamerc   ÚpPrinterEnumr=   N)r   r    r!   Úopnumr   r%   r:   r3   r   r   r   r   r|   P  ó    ûr|   c                   @   ó(   e Zd ZdefdefdefdeffZdS )ÚRpcEnumPrintersResponser   Ú	pcbNeededÚ
pcReturnedÚ	ErrorCodeN©r   r    r!   r:   r   r   r3   r   r   r   r   rƒ   Z  rz   rƒ   c                   @   s,   e Zd ZdZdefdefdefdeffZdS )ÚRpcOpenPrinterr   ÚpPrinterNameÚ	pDatatypeÚpDevModeContainerÚAccessRequiredN)	r   r    r!   r€   r%   r   r<   r   r3   r   r   r   r   rˆ   b  s    ürˆ   c                   @   r;   )ÚRpcOpenPrinterResponseÚpHandler†   N©r   r    r!   r0   r   r3   r   r   r   r   r�   k  r?   r�   c                   @   s   e Zd ZdZdeffZdS )ÚRpcClosePrinteré   Ú	phPrinterN)r   r    r!   r€   r0   r3   r   r   r   r   r�   r  s    ÿr�   c                   @   r;   )ÚRpcClosePrinterResponser’   r†   Nr�   r   r   r   r   r“   x  r?   r“   c                   @   s8   e Zd ZdZdefdefdefdefdefdeffZdS )	Ú-RpcRemoteFindFirstPrinterChangeNotificationExéA   ÚhPrinterÚfdwFlagsÚ
fdwOptionsÚpszLocalMachineÚdwPrinterLocalÚpOptionsN)	r   r    r!   r€   r0   r   r   r{   r3   r   r   r   r   r”     s    úr”   c                   @   r"   )Ú5RpcRemoteFindFirstPrinterChangeNotificationExResponser†   N©r   r    r!   r   r3   r   r   r   r   rœ   Š  r'   rœ   c                   @   s2   e Zd ZdZdefdefdefdefdeffZ	dS )ÚRpcOpenPrinterExéE   r‰   rŠ   r‹   rŒ   ÚpClientInfoN)
r   r    r!   r€   r%   r   r<   r   rj   r3   r   r   r   r   rž   �  r�   rž   c                   @   r;   )ÚRpcOpenPrinterExResponserŽ   r†   Nr�   r   r   r   r   r¡   š  r?   r¡   c                   @   ó2   e Zd ZdZdefdefdefdefdeffZdS )ÚRpcEnumPrinterDriversé
   rR   rV   rc   ÚpDriversr=   N©	r   r    r!   r€   r%   r   r   r:   r3   r   r   r   r   r£   ¡  r�   r£   c                   @   r‚   )ÚRpcEnumPrinterDriversResponser¥   r„   r…   r†   Nr‡   r   r   r   r   r§   «  rz   r§   c                   @   r¢   )ÚRpcGetPrinterDriverDirectoryé   rR   rV   rc   ÚpDriverDirectoryr=   Nr¦   r   r   r   r   r¨   ´  r�   r¨   c                   @   s"   e Zd ZdefdefdeffZdS )Ú$RpcGetPrinterDriverDirectoryResponserª   r„   r†   Nr‡   r   r   r   r   r«   ¾  s
    ýr«   c                   @   s&   e Zd ZdZdefdefdeffZdS )ÚRpcAddPrinterDriverExéY   rR   ÚpDriverContainerÚdwFileCopyFlagsN)r   r    r!   r€   r%   rb   r   r3   r   r   r   r   r¬   Æ  s    ýr¬   c                   @   r"   )ÚRpcAddPrinterDriverExResponser†   Nr�   r   r   r   r   r°   Î  r'   r°   )r   r   r¤   r©   r‘   r•   rŸ   r­   c                 C   s(   | t kr| S | dd … dkr| d S | S )Néÿÿÿÿú )r	   )Ústringr   r   r   ÚcheckNullStringä  s
   r´   c                 C   sJ   t ƒ }t|ƒ|d< ||d< |tu rt|d d< n||d< ||d< |  |¡S )a¤  
    RpcOpenPrinter retrieves a handle for a printer, port, port monitor, print job, or print server.
    Full Documentation: https://msdn.microsoft.com/en-us/library/cc244808.aspx

    :param DCERPC_v5 dce: a connected DCE instance.
    :param string printerName: A string for a printer connection, printer object, server object, job object, port
    object, or port monitor object. This MUST be a Domain Name System (DNS), NetBIOS, Internet Protocol version 4
    (IPv4), Internet Protocol version 6 (IPv6), or Universal Naming Convention (UNC) name that remote procedure
    call (RPC) binds to, and it MUST uniquely identify a print server on the network.
    :param string pDatatype: A string that specifies the data type to be associated with the printer handle.
    :param DEVMODE_CONTAINER pDevModeContainer: A DEVMODE_CONTAINER structure. This parameter MUST adhere to the specification in
    DEVMODE_CONTAINER Parameters (section 3.1.4.1.8.1).
    :param int accessRequired: The access level that the client requires for interacting with the object to which a
    handle is being opened.

    :return: a RpcOpenPrinterResponse instance, raises DCERPCSessionError on error.
    r‰   rŠ   r‹   r>   rŒ   )rˆ   r´   r	   Úrequest)ÚdceÚprinterNamerŠ   r‹   ÚaccessRequiredrµ   r   r   r   ÚhRpcOpenPrinterí  s   
r¹   c                 C   s   t ƒ }||d< |  |¡S )a±  
    RpcClosePrinter closes a handle to a printer object, server object, job object, or port object.
    Full Documentation: https://msdn.microsoft.com/en-us/library/cc244768.aspx

    :param DCERPC_v5 dce: a connected DCE instance.
    :param PRINTER_HANDLE phPrinter: A handle to a printer object, server object, job object, or port object.

    :return: a RpcClosePrinterResponse instance, raises DCERPCSessionError on error.
    r’   )r�   rµ   )r¶   r’   rµ   r   r   r   ÚhRpcClosePrinter
  s   

rº   c                 C   sb   t ƒ }t|ƒ|d< ||d< |tu rt|d d< n||d< ||d< |tu r(tdƒ‚||d< |  |¡S )a&  
    RpcOpenPrinterEx retrieves a handle for a printer, port, port monitor, print job, or print server
    Full Documentation: https://msdn.microsoft.com/en-us/library/cc244809.aspx

    :param DCERPC_v5 dce: a connected DCE instance.
    :param string printerName: A string for a printer connection, printer object, server object, job object, port
    object, or port monitor object. This MUST be a Domain Name System (DNS), NetBIOS, Internet Protocol version 4
    (IPv4), Internet Protocol version 6 (IPv6), or Universal Naming Convention (UNC) name that remote procedure
    call (RPC) binds to, and it MUST uniquely identify a print server on the network.
    :param string pDatatype: A string that specifies the data type to be associated with the printer handle.
    :param DEVMODE_CONTAINER pDevModeContainer: A DEVMODE_CONTAINER structure. This parameter MUST adhere to the specification in
    DEVMODE_CONTAINER Parameters (section 3.1.4.1.8.1).
    :param int accessRequired: The access level that the client requires for interacting with the object to which a
    handle is being opened.
    :param SPLCLIENT_CONTAINER pClientInfo: This parameter MUST adhere to the specification in SPLCLIENT_CONTAINER Parameters.

    :return: a RpcOpenPrinterExResponse instance, raises DCERPCSessionError on error.
    r‰   rŠ   r‹   r>   rŒ   zpClientInfo cannot be NULLr    )rž   r´   r	   Ú	Exceptionrµ   )r¶   r·   rŠ   r‹   r¸   r    rµ   r   r   r   ÚhRpcOpenPrinterEx  s   
r¼   c                 C   sT   t ƒ }||d< ||d< ||d< ||d< |tu rtdƒ‚t|ƒ|d< ||d< |  |¡S )a  
    creates a remote change notification object that monitors changes to printer objects and sends change notifications
    to a print client using either RpcRouterReplyPrinter (section 3.2.4.1.2) or RpcRouterReplyPrinterEx (section 3.2.4.1.4)
    Full Documentation: https://msdn.microsoft.com/en-us/library/cc244813.aspx

    :param DCERPC_v5 dce: a connected DCE instance.
    :param PRINTER_HANDLE hPrinter: A handle to a printer or server object.
    :param int fdwFlags: Flags that specify the conditions that are required for a change notification object to enter a signaled state.
    :param int fdwOptions: The category of printers for which change notifications are returned.
    :param string pszLocalMachine: A string that represents the name of the client computer.
    :param int dwPrinterLocal: An implementation-specific unique value that MUST be sufficient for the client to determine
    whether a call to RpcReplyOpenPrinter by the server is associated with the hPrinter parameter in this call.
    :param RPC_V2_NOTIFY_OPTIONS pOptions:  An RPC_V2_NOTIFY_OPTIONS structure that specifies printer or job members that the client listens to for notifications.

    :return: a RpcRemoteFindFirstPrinterChangeNotificationExResponse instance, raises DCERPCSessionError on error.
    r–   r—   r˜   rš   zpszLocalMachine cannot be NULLr™   r›   )r”   r	   r»   r´   rµ   )r¶   r–   r—   r˜   r™   rš   r›   rµ   r   r   r   Ú.hRpcRemoteFindFirstPrinterChangeNotificationEx=  s   
r½   c              
   C   sº   t ƒ }||d< ||d< t|d< ||d< d}z|  |¡ W n" ty> } zt|ƒ d¡dk r.‚ | ¡ d }W Y d}~nd}~ww t ƒ }||d< ||d< ||d< ||d	< d
| |d< |  |¡S )aÇ  
    RpcEnumPrinters enumerates available printers, print servers, domains, or print providers.
    Full Documentation: https://msdn.microsoft.com/en-us/library/cc244794.aspx

    :param DCERPC_v5 dce: a connected DCE instance.
    :param int flags: The types of print objects that this method enumerates. The value of this parameter is the
    result of a bitwise OR of one or more of the Printer Enumeration Flags (section 2.2.3.7).
    :param string name: NULL or a server name parameter as specified in Printer Server Name Parameters (section 3.1.4.1.4).
    :param level: The level of printer information structure.

    :return: a RpcEnumPrintersResponse instance, raises DCERPCSessionError on error.
    r}   r~   r   rc   r   ÚERROR_INSUFFICIENT_BUFFERr„   Nr=   ó   a)r|   r	   rµ   r   ÚstrÚfindÚ
get_packet)r¶   ÚflagsÚnameÚlevelrµ   ÚbytesNeededÚer   r   r   ÚhRpcEnumPrinters[  s*   €ý
rÈ   c                 C   s,   t ƒ }t|ƒ|d< ||d< ||d< |  |¡S )a~  
    RpcAddPrinterDriverEx installs a printer driver on the print server
    Full Documentation: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rprn/b96cc497-59e5-4510-ab04-5484993b259b

    :param DCERPC_v5 dce: a connected DCE instance.
    :param pName
    :param pDriverContainer
    :param dwFileCopyFlags

    :return: raises DCERPCSessionError on error.
    rR   r®   r¯   )r¬   r´   rµ   )r¶   rR   r®   r¯   rµ   r   r   r   ÚhRpcAddPrinterDriverEx  s
   
rÉ   c              
   C   óÆ   t ƒ }t|ƒ|d< ||d< ||d< t|d< d|d< z|  |¡ W n" tyB } zt|ƒ d¡dk r2‚ | ¡ d }W Y d	}~nd	}~ww t ƒ }t|ƒ|d< ||d< ||d< d
| |d< ||d< |  |¡S )aØ  
    RpcEnumPrinterDrivers enumerates the printer drivers installed on a specified print server.
    Full Documentation: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rprn/857d00ac-3682-4a0d-86ca-3d3c372e5e4a

    :param DCERPC_v5 dce: a connected DCE instance.
    :param pName
    :param pEnvironment
    :param Level
    :param pDrivers
    :param cbBuf
    :param pcbNeeded
    :param pcReturned

    :return: raises DCERPCSessionError on error.
    rR   rV   rc   r¥   r   r=   r¾   r„   Nr¿   )r£   r´   r	   rµ   r   rÀ   rÁ   rÂ   ©r¶   rR   rV   rc   rµ   rÇ   rÆ   r   r   r   ÚhRpcEnumPrinterDrivers”  s*   €ý
rÌ   c              
   C   rÊ   )a¿  
    RpcGetPrinterDriverDirectory retrieves the path of the printer driver directory.
    Full Documentation: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rprn/9df11cf4-4098-4852-ad72-d1f75a82bffe

    :param DCERPC_v5 dce: a connected DCE instance.
    :param pName
    :param pEnvironment
    :param Level
    :param pDriverDirectory
    :param cbBuf
    :param pcbNeeded

    :return: raises DCERPCSessionError on error.
    rR   rV   rc   rª   r   r=   r¾   r„   Nr¿   )r¨   r´   r	   rµ   r   rÀ   rÁ   rÂ   rË   r   r   r   ÚhRpcGetPrinterDriverDirectory½  s*   €ý
rÍ   N)¢Úimpacketr   Úimpacket.dcerpc.v5.dtypesr   r   r   r   r   r   r	   Úimpacket.dcerpc.v5.ndrr
   r   r   r   r   Úimpacket.dcerpc.v5.rpcrtr   Úimpacket.uuidr   ÚMSRPC_UUID_RPRNr   r%   r#   ÚJOB_ACCESS_ADMINISTERÚJOB_ACCESS_READÚJOB_EXECUTEÚJOB_READÚ	JOB_WRITEÚJOB_ALL_ACCESSÚPRINTER_ACCESS_ADMINISTERÚPRINTER_ACCESS_USEÚPRINTER_ACCESS_MANAGE_LIMITEDÚPRINTER_ALL_ACCESSÚPRINTER_EXECUTEÚPRINTER_READÚPRINTER_WRITEÚSERVER_ACCESS_ADMINISTERÚSERVER_ACCESS_ENUMERATEÚSERVER_ALL_ACCESSÚSERVER_EXECUTEÚSERVER_READÚSERVER_WRITEÚSPECIFIC_RIGHTS_ALLÚSTANDARD_RIGHTS_ALLÚSTANDARD_RIGHTS_EXECUTEÚSTANDARD_RIGHTS_READÚSTANDARD_RIGHTS_REQUIREDÚSTANDARD_RIGHTS_WRITEÚSYNCHRONIZEÚDELETEÚREAD_CONTROLÚ	WRITE_DACÚWRITE_OWNERÚGENERIC_READÚGENERIC_WRITEÚGENERIC_EXECUTEÚGENERIC_ALLÚPRINTER_CHANGE_SET_PRINTERÚPRINTER_CHANGE_DELETE_PRINTERÚPRINTER_CHANGE_PRINTERÚPRINTER_CHANGE_ADD_JOBÚPRINTER_CHANGE_SET_JOBÚPRINTER_CHANGE_DELETE_JOBÚPRINTER_CHANGE_WRITE_JOBÚPRINTER_CHANGE_JOBÚ!PRINTER_CHANGE_SET_PRINTER_DRIVERÚPRINTER_CHANGE_TIMEOUTÚPRINTER_CHANGE_ALLÚPRINTER_CHANGE_ALL_2Ú!PRINTER_CHANGE_ADD_PRINTER_DRIVERÚ$PRINTER_CHANGE_DELETE_PRINTER_DRIVERÚPRINTER_CHANGE_PRINTER_DRIVERÚPRINTER_CHANGE_ADD_FORMÚPRINTER_CHANGE_DELETE_FORMÚPRINTER_CHANGE_SET_FORMÚPRINTER_CHANGE_FORMÚPRINTER_CHANGE_ADD_PORTÚPRINTER_CHANGE_CONFIGURE_PORTÚPRINTER_CHANGE_DELETE_PORTÚPRINTER_CHANGE_PORTÚ"PRINTER_CHANGE_ADD_PRINT_PROCESSORÚ%PRINTER_CHANGE_DELETE_PRINT_PROCESSORÚPRINTER_CHANGE_PRINT_PROCESSORÚPRINTER_CHANGE_ADD_PRINTERÚ(PRINTER_CHANGE_FAILED_CONNECTION_PRINTERÚPRINTER_CHANGE_SERVERÚPRINTER_ENUM_LOCALÚPRINTER_ENUM_CONNECTIONSÚPRINTER_ENUM_NAMEÚPRINTER_ENUM_REMOTEÚPRINTER_ENUM_SHAREDÚPRINTER_ENUM_NETWORKÚPRINTER_ENUM_EXPANDÚPRINTER_ENUM_CONTAINERÚPRINTER_ENUM_ICON1ÚPRINTER_ENUM_ICON2ÚPRINTER_ENUM_ICON3ÚPRINTER_ENUM_ICON8ÚPRINTER_ENUM_HIDEÚPRINTER_NOTIFY_CATEGORY_2DÚPRINTER_NOTIFY_CATEGORY_ALLÚPRINTER_NOTIFY_CATEGORY_3DÚAPD_STRICT_UPGRADEÚAPD_STRICT_DOWNGRADEÚAPD_COPY_ALL_FILESÚAPD_COPY_NEW_FILESÚAPD_COPY_FROM_DIRECTORYÚAPD_DONT_COPY_FILES_TO_CLUSTERÚAPD_COPY_TO_ALL_SPOOLERSÚAPD_INSTALL_WARNED_DRIVERÚAPD_RETURN_BLOCKING_STATUS_CODEr0   r5   r:   r<   r@   rH   rI   rK   rL   rP   rQ   rS   rT   r[   r\   rb   re   rj   rl   rm   rn   ru   rv   r{   r|   rƒ   rˆ   r�   r�   r“   r”   rœ   rž   r¡   r£   r§   r¨   r«   r¬   r°   ÚOPNUMSr´   r¹   rº   r¼   r½   rÈ   rÉ   rÌ   rÍ   r   r   r   r   Ú<module>   s>  $		



	

	
	ø	
ÿ$
ÿ$)