Export (0) Print
Expand All

7 Appendix B: Product Behavior

The information in this specification is applicable to the following Microsoft products or supplemental software. References to product versions include released service packs:

  • Windows XP operating system

  • Windows Server 2003 operating system

  • Windows Vista operating system

  • Windows Server 2008 operating system

  • Windows 7 operating system

  • Windows Server 2008 R2 operating system

  • Windows 8 operating system

  • Windows Server 2012 operating system

  • Windows 8.1 operating system

  • Windows Server 2012 R2 operating system

Exceptions, if any, are noted below. If a service pack or Quick Fix Engineering (QFE) number appears with the product version, behavior changed in that service pack or QFE. The new behavior also applies to subsequent service packs of the product unless otherwise specified. If a product edition appears with the product version, behavior is different in that product edition.

Unless otherwise specified, any statement of optional behavior in this specification that is prescribed using the terms SHOULD or SHOULD NOT implies product behavior in accordance with the SHOULD or SHOULD NOT prescription. Unless otherwise specified, the term MAY implies that the product does not follow the prescription.

<1> Section 2.2.7.2: For print queues using a printer driver with a driver version of 0x00000004 (see cVersion in [MS-RPRN] section 2.2.1.3.1), Windows print servers use AsyncUIBalloon messages to send details about configuration status changes to client UI components. In these messages, the balloonUI element contains exactly one action element (section 2.2.7.2.1). The action element contains the dll attribute "PrintConfig.dll" and the entrypoint attribute "NotifyEntry". The text data in the action element is an XML fragment of the following form:

<Envelope printer="…" reason="{23bb1328-63de-4293-915b-a6a23d929acb}" detail="…">
  <Schema … />
  …
</Envelope>

The Envelope element contains the following attributes:

printer: A string containing the name of the print queue whose configuration has changed.

reason: The GUID {23bb1328-63de-4293-915b-a6a23d929acb}.

detail: A GUID provided by the printer driver excluding the GUID {ec8f261f-267c-469f-b5d6-3933023c29cc} which is reserved.

The Envelope element contains one or more Schema elements (section 2.2.8.1.2), each of which represents one of the configuration changes.

<2> Section 2.2.7.2.1: For all Windows versions, the function signature of the method specified by the entrypoint attribute is as follows.

void entrypoint(void * data);

data: The data from the action element.

Windows clients load the file indicated by the dll attribute as a dynamic linked library and call the method in the library indicated by the entrypoint attribute, passing in data by using the data parameter.

<3> Section 2.2.7.5.1: For all Windows versions, the function signature of the method specified by the entrypoint attribute varies depending on the bidi attribute value, as shown in the following table.

bidi value

Method prototype

"true"

void * entrypoint(void * data:)

"false"

void entrypoint(void * data:)

data: The data from the customUI element.

Windows clients load the file indicated by the dll attribute as a dynamic linked library and call the method in the library indicated by the entrypoint attribute, passing in data by using the data parameter.

<4> Section 2.2.7.7.1: For all Windows versions, the function signature of the method specified by the entrypoint attribute depends on the bidi attribute value as shown in the following table.

bidi value

Method prototype

"true"

void * entrypoint(void * data)

"false"

void entrypoint(void * data)

data: The data from the customData element.

Windows clients load the file indicated by the dll attribute as a dynamic linked library and call the method in the library indicated by the entrypoint attribute, passing in data by using the data parameter.

<5> Section 2.2.8.1.2: In Windows, these attributes correspond to printer attributes in the bidirectional communications schema. This schema is a hierarchy of printer attributes, some of which are properties, and the rest are values or value entries. Bidirectional communications interfaces are implemented by printer-specific components. A detailed description of printer drivers and the bidirectional communications schema can be found in [MSDN-MPD] and [MSDN-BIDI].

<6> Section 2.2.8.1.10: In Windows, these attributes correspond to printer attributes in the bidirectional communications schema. This schema is a hierarchy of printer attributes, some of which are properties, and the rest are values or value entries. Bidirectional communications interfaces are implemented by printer-specific components. A detailed description of printer drivers and the bidirectional communications schema can be found in [MSDN-MPD] and [MSDN-BIDI].

<7> Section 3.1.1.4: Opnums reserved for local use apply to Windows as follows.

opnum

Description

2

Not used by Windows.

<8> Section 3.1.1.4.3: In the following Windows versions, when a local client directly calls the local API equivalent of IRPCAsyncNotify_GetNewChannel (CreatePrintAsyncNotifyChannel as described in [MSDN-ASYNC]) without a prior successful call to IRPCAsyncNotify_RegisterClient using the same PRPCREMOTEOBJECT value, the local server fails the call immediately and returns the HRESULT error value ([MS-ERREF] section 2.1.1) 0x8004000D:

  • Windows Vista

  • Windows Server 2008

  • Windows Vista SP1

  • Windows 7

  • Windows Server 2008 R2

  • Windows 8

  • Windows Server 2012

  • Windows 8.1

  • Windows Server 2012 R2

<9> Section 3.1.1.4.3: In the following Windows versions, when a local client directly calls the local API equivalent of IRPCAsyncNotify_GetNewChannel (CreatePrintAsyncNotifyChannel as described in [MSDN-ASYNC]) following a prior call to IRPCAsyncNotify_UnregisterClient using the same PRPCREMOTEOBJECT value, the server fails the call immediately and returns the HRESULT error value ([MS-ERREF] section 2.1.1) 0x8004000E:

  • Windows Vista

  • Windows Server 2008

  • Windows Vista SP1

  • Windows 7

  • Windows Server 2008 R2

  • Windows 8

  • Windows Server 2012

  • Windows 8.1

  • Windows Server 2012 R2

<10> Section 3.1.1.4.5: For all Windows versions, the server by default limits the number of buffered unidirectional notifications to 100.

For Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2, the default limit of 100 can be changed by creating a REG_DWORD value in the registry at HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Printers\InternalQueueSizeForUniDiChannel and setting this value to the desired limit for the number of buffered unidirectional notifications.

<11> Section 3.1.1.4.6: In the following Windows versions, when a local client directly calls the local API equivalent of IRPCAsyncNotify_CloseChannel (IPrintAsyncNotifyChannel::CloseChannel as described in [MSDN-ASYNC]) following a successful return from IRPCAsyncNotify_GetNotificationSendResponse with a NULL value returned for the pChannel parameter, or following a prior successful return from IRPCAsyncNotify_CloseChannel, the server fails the call immediately and returns the HRESULT error value ([MS-ERREF] section 2.1.1) 0x80040008:

  • Windows Vista

  • Windows Server 2008

  • Windows Vista SP1

  • Windows 7

  • Windows Server 2008 R2

  • Windows 8

  • Windows Server 2012

  • Windows 8.1

  • Windows Server 2012 R2

 
Show:
© 2014 Microsoft