HSE_REQ_GET_CERT_INFO_EX Is Not Exposed in ISAPI ServerSupportFunction

This article was previously published under Q221514
This article has been archived. It is offered "as is" and will no longer be updated.
In Microsoft Internet Information Server (IIS) 4.0, several new optionshave been added to the ServerSupportFunction. The ServerSupportFunction isa callback function that is supplied in the ECB (EXTENSION_CONTROL_BLOCK).It supports several auxiliary functions that are not covered by otherexplicit callback functions in the ECB. One of these new options isHSE_REQ_GET_CERT_INFO_EX, which returns a CERT_CONTEXT structure. Thisoption is currently only exposed to ISAPI Extensions, so when writing anISAPI Filter, this call may fail and may not return a CERT_CONTEXTstructure as expected.

Windows NT Server or Workstation 4.0

To resolve this problem, obtain the latest service pack for Windows NT 4.0 or the individual software update. For information on obtaining the latest service pack, please go to:
  • 152734 how to obtain the latest windows nt 4.0 service pack
For information on obtaining the individual software update, contact Microsoft Product Support Services. For a complete list of Microsoft Product Support Services phone numbers and information on support costs, please go to the following address on the World Wide Web:

Windows NT Server 4.0, Terminal Server Edition

To resolve this problem, obtain the latest service pack for Windows NT Server 4.0, Terminal Server Edition. For additional information, click the following article number to view the article in theMicrosoft Knowledge Base:
152734 How to Obtain the Latest Windows NT 4.0 Service Pack

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Windows NT Server version 4.0, Terminal Server Edition Service Pack 6.
The following code can be used to obtain a client certificate in the ISAPI Filter:
char CertificateBuf[8192];CERT_CONTEXT_EX ccex;ccex.cbAllocated = sizeof(CertificateBuf);ccex.CertContext.pbCertEncoded = (BYTE*)CertificateBuf;DWORD dwSize = sizeof(ccex);   if (pfc->ServerSupportFunction(pfc, (enum SF_REQ_TYPE)HSE_REQ_GET_CERT_INFO_EX,                                (LPVOID)&ccex, dwSize,NULL) == FALSE)   {// Handle Error Here   }   // ccex now contains valid client certificate information.				

Article ID: 221514 - Last Review: 10/20/2013 16:39:33 - Revision: 5.4

  • Microsoft Windows NT Server 4.0, Terminal Server Edition
  • Microsoft Internet Information Server 4.0
  • kbnosurvey kbarchive kbhotfixserver kbqfe kbbug kbfix kbqfe KB221514