DCOM95 1.3 Opmerkingen bij de release Datum laatste wijziging: 14 september 1998 DCOM95 biedt gedistribueerde COM-ondersteuning voor Microsoft(r) Windows(r) 95. Het DCOM-communicatieprotocol biedt transparante ondersteuning voor betrouwbare, veilige en efficiënte communicatie tussen COM-onderdelen (Component Object Model) zoals ActiveX(r)- besturingselementen, scripts en Java-applets die zich op verschillende machines in een LAN, in een WAN of op het Internet bevinden. Met DCOM kan uw toepassing worden gedistribueerd naar locaties die voor uw klant en voor de toepassing het meest zinvol zijn. Voor meer gedetailleerde informatie raadpleegt u het technische overzicht van DCOM dat beschikbaar is vanaf de introductiepagina voor Microsoft COM op http://www.microsoft.com/com/. Inhoud ====== I. Nieuwe functies II. Opgeloste bugs III. Bekende problemen IV. Verschillen met DCOM op Windows NT V. Herdistributie VI. Ondersteuning en hulpbronnen VII. Lijst met bestanden I. Nieuwe functies ------------------ Vervangen van DCOM95 door oudere versie is niet toegestaan In vorige releases van DCOM95 kon u een nieuwere versie van DCOM95 vervangen door een oudere versie van DCOM95. Nu worden tijdens de installatie de versienummers gecontroleerd en is het niet langer toegestaan een oudere versie over een nieuwere versie heen te installeren. Door deze wijziging worden problemen met incompatibele versies van DLL-bestanden vermeden. Ondersteuning voor procesbewaking in Visual Studio 6.0 Ter ondersteuning van Visual Studio 6.0, biedt DCOM95 bewakings- informatie waarmee ontwikkelaars inzicht kunnen krijgen in het gedrag, de prestaties en de structuur van hun toepassing. Als u Visual Studio Analyzer gebruikt op een computer waarop Windows 95 draait, moet u altijd deze versie van DCOM95 gebruiken. Nieuwe map gemaakt door Setup Setup maakt een map met de naam DCOM95 onder uw systeemmap. Hier worden de licentie-overeenkomst voor de eindgebruiker en andere bestanden opgeslagen. Setup maakt tevens een submap van DCOM95 met de naam OLDOLE, waarin een kopie van de oude binaire bestanden voor DCOM95 of OLE wordt bewaard. Deze bestanden worden teruggezet als u later besluit de installatie van DCOM95 ongedaan te maken. COM Internet Services De COM Internet Services (CIS) stellen clients en servers in staat verbinding met elkaar te maken via het Internet met behulp van COM. CIS bestaat uit: * Een nieuw DCOM-protocol, 'Tunneled TCP' * Een nieuw type moniker, de OBJREF-moniker * Een nieuw hulpprogramma CISCNFG Voor CIS-clientondersteuning in Windows 95 moet u zowel DCOM95 als DCOMCFG installeren. Gebruik vervolgens het hulpprogramma CISCNFG, dat wordt geïnstalleerd tijdens de installatie van het configuratiehulpprogramma van DCOM, om de registersleutel te wijzigen waarmee wordt gedefinieerd welk protocol moet worden gebruikt voor externe processen. In het venster Opdrachtprompt typt u het volgende: ciscnfg waarbij de volgende waarden kan hebben: * rpc als u RPC wilt gebruiken * http als u HTTP wilt gebruiken * tcp_http als u eerst TCP en vervolgens, als er een time-out optreedt op de server, HTTP wilt proberen. Als u de opdracht ciscnfg opgeeft zonder argumenten, wordt gebruiksinformatie verstrekt. Er zijn geen updates van de SDK vereist voor het gebruik van het 'Tunneled TCP'-protocol. Er zijn enkele updates voor OBJREF-monikers. CreateObjrefMoniker Maakt een OBJREF-moniker op basis van een aanwijzer voor een object. WINOLEAPI CreateObjrefMoniker( LPUNKNOWN pUnk, //Aanwijzer voor het object LPMONIKER *ppMk //Adres van aanwijzer voor OBJREF-moniker ); Parameters pUnk Aanwijzer voor de IUnknown-interface van het object dat de moniker moet vertegenwoordigen. ppMk Adres van een aanwijzer voor de IMoniker-interface van de OBJREF-moniker die wordt gemaakt. Retourwaarden Deze functie ondersteunt, behalve de standaardretourwaarden E_OUTOFMEMORY en E_UNEXPECTED, ook de volgende waarden: S_OK Het is gelukt de OBJREF-moniker te maken. Opmerkingen Clients gebruiken OBJREF-monikers om een overgebrachte aanwijzer te verkrijgen naar een object dat wordt uitgevoerd in de adresruimte van de server. Normaalgesproken roept de server CreateObjrefMoniker aan om een OBJREF-moniker te maken, roept vervolgens IMoniker::GetDisplayName aan en geeft tenslotte de moniker vrij. De weergavenaam voor een OBJREF-moniker heeft de volgende vorm: OBJREF:nnnnnnnn waarbij nnnnnnnn een 64-bits code met een willekeurige lengte die de machinelocatie, het eindpunt van het proces en de interface-aanwijzer-ID (IPID) van het uitgevoerde object bevat. De weergavenaam kan vervolgens als tekst worden overgebracht naar de client. Zo kan de weergavenaam zich bijvoorbeeld op een HTML-pagina bevinden die door de client wordt gedownload. De client kan de weergavenaam doorgeven aan MkParseDisplayName, waarna een OBJREF-moniker wordt gemaakt op basis van de weergavenaam. Een aanroep van de methode IMoniker::BindToObject van de moniker resulteert vervolgens in een overgebrachte aanwijzer naar het uitgevoerde exemplaar op de server. Zo kan, bijvoorbeeld, een COM-component op de server die deel uitmaakt van een Active Server-pagina een OBJREF-moniker maken, de weergavenaam van deze moniker ophalen en vervolgens de weergavenaam wegschrijven naar de HTML-uitvoer die naar de browser van de client wordt gezonden. Een script dat wordt uitgevoerd op de client kan deze weergavenaam gebruiken om toegang te verkrijgen tot het uitgevoerde object zelf. Een script in Visual Basic op de client zou, bijvoorbeeld, de weergavenaam kunnen opslaan in een variabele met de naam strMyName en de volgende regel kunnen invoegen: objMyInstance = GetObject(strMyName) De script-engine voert een interne aanroep uit van MkParseDisplayName en IMoniker::BindToObject, waarna het script objMyInstance kan gebruiken om rechtstreeks naar het uitgevoerde object te verwijzen. Als het uitgevoerde object statische IPID's gebruikt en het serverproces altijd op dezelfde computer draait met een algemeen bekend eindpunt, zal de weergavenaam van de OBJREF-moniker nooit veranderen. In dat geval kan de server de weergavenaam opslaan in plaats van deze te berekenen telkens wanneer er om het object wordt gevraagd. Implementatie van IMoniker - OBJREF-moniker OBJREF-monikers vormen een verwijzing naar een exemplaar van een object dat locaal of extern wordt uitgevoerd op een out-of-process-server. De moniker identificeert het exemplaar van het object en de computer waarop het object wordt uitgevoerd. Een OBJREF-moniker is in veel opzichten vergelijkbaar met een aanwijzer-moniker, behalve dat het uitgevoerde object out-of-process is. Een client kan IMoniker::BindToObject op een OBJREF-moniker en de verkregen aanwijzer aanroepen om toegang te krijgen tot het uitgevoerde object, ongeacht de locatie van dit object. Een belangrijk onderscheid met een aanwijzer-moniker is dat de weergavenaam van een OBJREF-moniker kan worden opgenomen in een HTML-pagina en het uitgevoerde object dat wordt vertegenwoordigd door de moniker kan worden gebonden door een client-script, applet of ActiveX-besturingselement. Wanneer te gebruiken Een OBJREF-moniker wordt primair gebruikt om via het Internet toegang te verkrijgen tot een exemplaar van een uitgevoerd object. Met behulp van een Active Server-pagina of een andere methode om dynamische HTML-inhoud te genereren, wordt de weergavenaam van een OBJREF-moniker in een parameter bij een applet of een ActiveX-besturingselement. De code voor het applet of besturingselement roept CreateObjrefMoniker aan om een OBJREF-moniker te maken op basis van de weergavenaam en roept vervolgens IMoniker::BindToObject op de resulterende OBJREF-moniker aan om toegang te verkrijgen tot een exemplaar van het uitgevoerde object. De Active Server-pagina geeft vervolgens een aanwijzer naar het uitgevoerde object door aan de client van de pagina. Opmerkingen IMoniker::BindToObject. Voor OBJREF-monikers moet de parameter pmkToLeft de waarde NULL hebben. Aangezien de OBJREF-moniker een uitgevoerd object weergeeft, vindt er geen activering plaats. Als het weergegeven object niet langer wordt uitgevoerd, geeft BindToObject de waarde E_UNEXPECTED als resultaat. IMoniker::BindToStorage. Met deze methode wordt een overgebrachte aanwijzer naar de gevraagde interface opgehaald op het opslagapparaat dat het uitgevoerde object bevat. Aangezien de OBJREF-moniker een uitgevoerd object weergeeft, vindt er geen activering plaats. Als het weergegeven object niet langer wordt uitgevoerd, geeft BindToStorage de waarde E_UNEXPECTED als resultaat. IMoniker::Reduce. Deze methode geeft MK_S_REDUCED_TO_SELF als resultaat en geeft dezelfde moniker door. IMoniker::ComposeWith. Als pmkRight een anti-moniker is, heeft de moniker die als resultaat wordt gegeven de waarde NULL. Als pmkRight een samengestelde moniker is waarvan de linker component een anti-moniker is, wordt de samengestelde moniker als resultaat gegeven, minus de linker anti-moniker. Als pmkRight noch een anti-moniker noch een samengestelde moniker is waarvan de linker component een anti-moniker is, controleert deze methode de parameter fOnlyIfNotGeneric. Als deze de waarde FALSE heeft, combineert deze methode de twee monikers tot een generieke samengestelde moniker; als deze de waarde TRUE heeft, stelt deze methode *ppmkComposite in op NULL en geeft de waarde MK_E_NEEDGENERIC als resultaat. IMoniker::Enum. Deze methode geeft S_OK als resultaat en stelt ppenumMoniker in op NULL. IMoniker::IsEqual. Deze methode geeft S_OK als resultaat als *pmkOther een OBJREF-moniker is en de paden voor beide monikers identiek zijn (op basis van een niet-hoofdlettergevoelige vergelijking). Als dit niet het geval is, geeft deze methode de waarde S_FALSE als resultaat. IMoniker::Hash. Deze methode berekent een hash-waarde voor de moniker. IMoniker::IsRunning. Aangezien OBJREF-monikers een exemplaar van een uitgevoerd object weergeven, geeft deze methode de waarde TRUE als resultaat tenzij bekend is dat het object niet langer wordt uitgevoerd omdat een recente aanroep is mislukt. Deze methode negeert pmkToLeft. IMoniker::GetTimeOfLastChange. Deze methode geeft de waarde E_NOTIMPL als resultaat. IMoniker::Inverse. Deze methode geeft een anti-moniker (de resultaten van het aanroepen van CreateAntiMoniker) als resultaat. IMoniker::CommonPrefixWith. Als de twee monikers gelijk zijn, geeft deze methode de waarde MK_S_US als resultaat en stelt *ppmkPrefix in op NULL. Als de andere moniker geen OBJREF-moniker is, geeft deze methode beide monikers door aan de functie MonikerCommonPrefixWith. De situatie waarbij de andere moniker een generieke samengestelde moniker is, wordt door deze functie op de juiste wijze afgehandeld. Als er geen gemeenschappelijk voorvoegsel is, geeft deze methode de waarde MK_E_ als resultaat. IMoniker::RelativePathTo. Deze methode geeft de waarde E_NOTIMPL als resultaat. IMoniker::GetDisplayName. Met deze methode wordt de weergavenaam voor de OBJREF- moniker verkregen. De weergavenaam is een 64-bits code die de machinelocatie, het eindpunt van het proces en de interface- aanwijzer-id (IPID) van het uitgevoerde object bevat. Omwille van de compatibiliteit in de toekomst, kunnen voor de weergavenaam alleen tekens worden gebruikt die kunnen worden opgegeven als onderdeel van een URL. IMoniker::ParseDisplayName. Als pmkToLeft niet de waarde NULL heeft, geeft deze methode de waarde MK_E_SYNTAX als resultaat. IMoniker::IsSystemMoniker. Deze methode geeft de waarde S_OK als resultaat en geeft MKSYS_OBJREFMONIKER door. Ondersteuning voor gegevenstypen in VB6.0 In Visual Basic(r) 6.0 kunnen varianten door de gebruiker gedefinieerde gegevensstructuren bevatten. DCOM95 ondersteunt nu de externe toegang tot deze varianten. II. Opgeloste bugs ------------------ Racevoorwaarde tijdens verwijderen van meerdere modules In eerdere versies van DCOM95 trad een racevoorwaarde op als meerdere modules gelijktijdig werden verwijderd. Afhankelijk van de volgorde waarin de modules werden verwijderd, kon er een toegangsfout optreden. Dit is gecorrigeerd in deze release van DCOM95. Geen reactie op Bureaublad tijdens onderhandeling over RPC-protocollen In eerdere versies van DCOM95 werden geen berichten verzonden terwijl er over RPC-protocollen werd onderhandeld. Als de gebruiker een andere toepassing startte terwijl er over RPC-protocollen werd onderhandeld, leek het in bepaalde gevallen alsof de machine niet reageerde. Na 30 seconden werd de verwerking van berichten dan hervat. Dit gedrag is aangepast in de meest recente release van DCOM95 en het is nu mogelijk toepassingen te starten terwijl er over RPC- protocollen wordt onderhandeld. Geen reactie op Bureaublad tijdens starten van nieuwe toepassing RPC maakt een verborgen venster in de Multiple-Threaded Apartment (MTA), dat niet is vereist om berichten te verzenden volgens de DCOM-specificatie. Als een gebruiker een nieuwe toepassing start vanaf het Bureaublad, stuurt Windows een bericht naar alle andere vensteringangen, waarmee deze op de hoogte worden gesteld van deze gebeurtenis. Hierbij wordt een antwoord verwacht. In eerdere versies van DCOM95 kwam het voor dat het verborgen RPC-venster niet reageerde en dat Windows vastliep. In deze versie van DCOM95 is dit probleem opgelost en is het RPC-venster er niet langer de oorzaak van dat het Bureaublad niet reageert als nieuwe toepassingen worden gestart. Beschadiging van heap door gebruik van meerdere IP-adressen In bepaalde situaties, als u een vorige versie van DCOM95 draaide op een machine met meer dan één IP-adres, trad er overloop van de IP-adresbuffer op en raakte de heap beschadigd. Dit is opgelost in de meest recente release van DCOM95. Alleen eerste IP-adres wordt gebruikt Als u een vorige versie van DCOM95 gebruikte op een machine met twee netwerkadapterkaarten (en dus met twee IP-adressen, die elk zijn toegewezen aan een verschillende adreskaart), maakte DCOM95 gebruik van slechts één netwerkadapter. In deze release van DCOM95, wordt de tweede adapter gebruikt als de eerste niet werkt. RPC probeert nu meerdere IP-adressen Wanneer er sprake is van een externe procedure-aanroep voor een machine met meerdere IP-adressen, wordt nu geprobeerd de volgende IP-adressen te gebruiken als het niet lukt verbinding te maken met het eerste IP-adres. Bestands-monikers ondersteunen aanvullende syntaxis voor paden Het is nu mogelijk bestands-monikers te maken waarbij de argumenten worden gepresenteerd in de vorm , zoals "C:\bug\bug\..\..\foo.jpg." In DCOM95 1.1 waren uitsluitend relatieve paden (bijvoorbeeld "..\..\foo.jpg") of absolute paden (bijvoorbeeld "C:\foo.jpg") toegestaan. Algemene beveiligingsfout als Oleaut32.dll wordt uitgeschakeld In vorige versies van DCOM95 trad er een algemene beveiligingsfout op wanneer Oleaut32.dll werd uitgeschakeld voordat CoUninitialize werd aangeroepen. Dit gebeurde meestal als een VB-toepassing een besturingselement maakte dat statisch was gekoppeld aan Oleaut32.dll en dit besturingselement vervolgens vrijgaf voordat CoUninitialize werd aangeroepen. In de meest recente release van DCOM95 leidt dit niet langer tot een algemene beveiligingsfout. Overdracht van gegevenstypen in Visual Basic tot stand brengen en ongedaan maken De overdracht en het ongedaan maken van de overdracht van bepaalde gegevenstypen in Visual Basic vindt nu op de juiste wijze plaats. Parametermatrices groter dan 64K zijn nu toegestaan. De overdracht en het ongedaan maken van de overdracht van gedefinieerde structuren die aliassen gebruiken voor het gegevenstype vinden nu op de juiste wijze plaats. Atomen te vaak verwijderd in OleUninitialize Deze bug trad op in toepassingen die OleInitialize en OleUninitialize meerdere keren aanroepen. Tijdens de initialisatie voegt OLE een groot aantal atomen toe voor DDE RPC. Als de atomen reeds zijn toegevoegd door een andere thread, worden ze niet nogmaals toegevoegd. In vorige versies van DCOM95 werden tijdens de de-initialisatie wel altijd de atomen maar niet de ingangen verwijderd. De volgende keer dat OleInitialize dan werd aangeroepen, bestonden de oude ingangen nog steeds, zelfs al waren de atomen reeds verwijderd en werden deze niet opnieuw toegevoegd door OLE. Dit had tot gevolg dat alle OLE-atomen ongeldig werden nadat OleInitialize en OleUninitialize een aantal keren waren aangeroepen. Dit probleem is opgelost in de huidige release van DCOM95. ADO-servers worden op de juiste wijze afgesloten Active Data Objects (ADO's) gebruiken aanwijzer-monikers om een serverproces te starten. Vorige versies van DCOM95 bevatten een bug met betrekking tot het referentienummer van de aanwijzer-moniker, waarbij aanwijzer-monikers werden gemaakt met 1, in plaats van 0, als initieel referentienummer. Daardoor zou het referentienummer van de aanwijzer-moniker nooit nul kunnen worden, en zou de aanwijzer-moniker dus nooit kunnen worden vrijgegeven. Dit had tot resultaat dat ADO-servers nooit werden afgesloten, zelfs niet nadat alle aanwijzers naar deze servers waren vrijgegeven. Dit is opgelost in de huidige versie van DCOM95. CoCreateInstance werkt met eigen DNS-naam In vorige versies van DCOM95 werkte het aanroepen van CoCreateInstance met de volledig gekwalificeerde naam van de lokale machine niet. Dit is opgelost in de huidige versie van DCOM95. Er wordt nu op de juiste wijze een exemplaar op de lokale machine gemaakt door CoCreateInstance. Trage doorvoer op hoofdopslagapparaat bij zeer groot samengesteld bestand In vorige versies van DCOM95 werd de doorvoersnelheid op een hoofdopslagapparaat dat was geopend in de modus STGM_TRANSACTED zeer laag wanneer er sprake was zeer groot samengesteld bestand (bijvoorbeeld 400 MB). De grootte van de interne paginatabel is aangepast, waardoor dit niet langer een probleem is. Het exporteren van objecten uit een opnieuw gemaakte MTA In vorige versies van DCOM95 kon een server een object niet exporteren vanuit een Multi-Threaded Apartment (MTA) als deze MTA tijdens dit proces niet voor het eerst werd gemaakt. Dit probleem is opgelost. Nu kunnen objecten wel worden geëxporteerd vanuit de MTA nadat deze is gemaakt, vernietigd en vervolgens opnieuw gemaakt. Meerdere exemplaren van uitvoerbare bestanden in Visual Basic 4 Als u in DCOM95 v1.1 meerdere exemplaren van hetzelfde uitvoerbare bestand in Visual Basic 4 startte en deze vervolgens in elke andere volgorde behalve LIFO (Last-In First-Out) afsloot, liep het laatste uitvoerbare bestand vast. Dit gold ook voor E-Forms in Microsoft Exchange. Dit probleem is opgelost in de meest recente release van DCOM95. U kunt de uitvoerbare bestanden van Visual Basic 4 nu in elke willekeurige volgorde afsluiten. Uitgebreide tekens in bestandsnamen in Visual Basic Als bij de naamgeving van een module of klasse in Visual Basic uitgebreide tekens voor een bepaalde taal werden gebruikt, bestond de kans dat dit bestand niet kon worden geopend op machines die waren geconfigureerd voor een andere landinstelling. Dit is opgelost. III. Bekende problemen ---------------------- Corel WordPerfect Suite 7: Installatie veroorzaakt fout met betrekking tot ongeldige pagina Als u Corel WordPerfect Suite 7 installeert op een Windows 95-systeem waarop DCOM95 draait, bestaat de mogelijkheid dat er een fout met betrekking tot een ongeldige pagina optreedt in PfOd70.pfc tijdens de installatie. Als dit probleem zich voordoet, hoeft u alleen het dialoogvenster met de foutmelding te sluiten. De installatie zou zonder problemen moeten kunnen worden voortgezet. Microsoft Access95: Databasereplicatie werkt niet Als u probeert een Access-database te repliceren met behulp van Microsoft Access 95 op machines waarop DCOM95 is geïnstalleerd, is het mogelijk dat de volgende foutmelding wordt weergegeven: Microsoft Access kan deze bewerking niet voltooien omdat het de DLL Msjtrclr niet kan vinden of initialiseren. Dit is een probleem in Microsoft Access 95. U kunt dit omzeilen door een programma te schrijven dat geen gebruik maakt van het hulpprogramma voor replicatie maar van het objectmodel van Access, of door de Werkmap te gebruiken voor replicatie. Dit probleem is opgelost in Microsoft Access 97. WordPerfect Als u een WordPerfect-document hebt dat een ingesloten Corel-werkblad bevat en als het werkblad een ander ingesloten object (bijvoorbeeld een bitmap) bevat, is het mogelijk dat er een waarschuwingsmelding wordt weergegeven waarin wordt gemeld dat de netwerkverbinding is verbroken wanneer u het binnenste object afsluit. Er kunnen vier of vijf van dit soort waarschuwingsmeldingen worden weergegeven. Deze meldingen hebben geen verdere gevolgen. U kunt ze eenvoudigweg afsluiten en doorgaan. MTA-clients (Multiple-Threaded Apartment) die gebruik maken van BSTR- conversieroutines kunnen DDE-berichten blokkeren BSTR-conversieroutines binnen Automation (bijvoorbeeld BstrFromR4) maken verborgen vensters ter ondersteuning van de typeconversie. De Windows- berichtenwachtrij wordt niet bediend door deze vensters. Als een dergelijk venster wordt gemaakt vanuit een MTA-client, kunnen DDE-berichten worden geblokkeerd. Binnen het MTA-programmeermodel is de client-thread niet verplicht de berichtenwachtrij te bedienen. Als dit inderdaad niet gebeurt, zorgt dit venster van het hoogste niveau ervoor dat algemene uitgezonden berichten worden geblokkeerd. Er zijn twee werkwijzen waarmee deze situatie kan worden omzeild. U kunt de BSTR-conversieroutines aanroepen vanuit een STA-client (Single-Threaded Apartment) of de MTA-thread van de client zich laten gedragen als een STA- thread. (Een STA-thread moet de berichtenwachtrij wel bedienen.) Als de thread een win32-ingang blokkeert, moet deze thread de functie MsgWaitForMultipleObjects aanroepen om gelijktijdig Windows-berichten te versturen. DLL-padnamen die langer zijn dan 127 tekens veroorzaken een fout Als u een DLL in het register opneemt met een padnaam die uit 128 of meer tekens bestaat, slaagt de registratie, maar geeft CoCreateInstance of CoGetClassObject een fout als resultaat (REGDB_E_CLASSNOTREG) als wordt geprobeerd toegang te verkrijgen tot een object dat wordt ondersteund door deze DLL. IV. Verschillen met DCOM op Windows NT -------------------------------------- Beveiligingsfuncties van DCOM95 De basisfunctionaliteit en de API (Application Programming Interface) voor DCOM95 zijn identiek voor Windows 95 en Windows NT 4.0/5.0. Bepaalde functies met betrekking tot de beveiliging zijn echter verschillend vanwege de verschillende beveiligingsinfrastructuren waarvan deze besturingssystemen gebruik maken. Het is raadzaam de standaardbeveiligingsinstellingen te gebruiken; het is tevens noodzakelijk beveiliging op "gebruikersniveau" in te schakelen voor shares op bestandssystemen. (Zie hieronder.) De volgende services, die kunnen worden gebruikt ter vervanging van de standaardbeveiligingsfuncties, zijn beschikbaar: * CoInitializeSecurity * CoQueryAuthenticationService * CoQueryProxyBlanket * CoSetProxyBlanket * CoQueryClientBlanket * IClientSecurity-interface * IServerSecurity-interface Bepaalde functies die deel uitmaken van Windows NT zijn echter niet beschikbaar onder Windows 95 vanwege verschillen in de beveiligingsinfrastructuur van Windows 95. Er moet vooral rekening worden gehouden met het gebrek aan beveiligingsfuncties in de Win32-API, zoals de mogelijkheid toegangsbesturingslijsten (ACL's) te maken en de functie AccessCheck, en het gebrek aan een beveiligingscontext voor thread- en procestokens. Windows 95 biedt geen ingebouwde ondersteuning voor deze functies of constructies. Om die reden ondersteunt DCOM95 geen imitatiefunctie (in het bijzonder, de hulpfuncties CoImpersonateClient en CoRevertToSelf op de IServerSecurity-interface), die is gebaseerd op beveiliging van thread- en proces-tokens in Windows NT 4.0. De imitatiefunctie wordt gewoonlijk gebruikt om automatisch de toegang te besturen tot systeembronnen waartoe de toegang kan worden beperkt, zoals het bestandssysteem, andere processen en het netwerk. In Windows 95 kan de toegang tot deze bronnen niet worden beperkt. DCOM95 biedt de programmeurs echter wel verschillende hulpobjecten voor het leveren van ACL-functionaliteit en functies voor toegangsbeheer. Deze functionaliteit kan worden gebruikt om expliciet de toegang van externe clients te besturen tot zowel systeembronnen of -gegevens als door de gebruiker gedefinieerde bronnen of gegevens. Deze hulpobjecten worden geleverd door het systeemobject CLSID_DCOMAccessControl, dat de IAccessControl-interface implementeert. IAccessControl zou moeten worden gebruikt om de beveiligingsrechten door de software te laten beheren wanneer de overdraagbaarheid tussen Windows 95/98 en Windows NT van belang is. Het CLSID_DCOMAccessControl-object is beschikbaar in alle releases van DCOM95 en in Windows NT 4.0 SP2 of later. Raadpleeg de SDK- documentatie voor uw platform voor nadere details over AccessControl. Start- en toegangsbeveiliging De functionaliteit waarmee kan worden bestuurd wie code mag starten vanaf de server wordt niet ondersteund in DCOM95, omdat het starten van servers niet wordt ondersteund. Externe clients kunnen alleen verbinding maken met en gebruik maken van servers/klassen die al actief zijn. In DCOM95 wordt de mogelijkheid om verbinding te maken met servers/klassen die al actief zijn wel ondersteund. Toegangsbeveiliging wordt ondersteund via de registersleutel \APPID\{.}\AccessPermissions en aangepast via het hulpprogramma DCOMCNFG tool of tijdens de installatie of instelling van de servercode. Niet-geverifieerde gebruikers kunnen gebruik maken van servers als u de klasse zodanig configureert dat niet-geverifieerde verbindingen worden ondersteund (met behulp van statische configuratiehulpprogramma's of via de dynamische functie CoInitializeSecurity). U kunt tevens willekeurige ACL's maken om te definiëren welke gebruikers en groepen toegang kunnen krijgen tot specifieke services. Verificatieniveau's DCOM95-clients kunnen DCOM-oproepen doen op elk gewenst verificatieniveau. DCOM95-servers of -clients die worden teruggebeld, kunnen alleen DCOM-oproepen accepteren op de verificatieniveau's RPC_C_AUTHN_LEVEL_NONE of RPC_C_AUTHN_LEVEL_CONNECT. Transport DCOM95 ondersteunt uitsluitend TCP-verbindingen. Als het TCP/IP-protocol niet is geïnstalleerd, is DCOM95 niet in staat COM-ondersteuning te bieden tussen verschillende machines. Registerinstellingen De volgende registersleutels die te vinden zijn in HKEY_LOCAL_MACHINE\Software\Microsoft\OLE worden geïnstalleerd door DCOM95: EnableDCOM (standaardwaarde = "J"). Schakelt DCOM in op deze machine. Als deze waarde is ingesteld op "N", is de machine niet in staat om verbinding te maken met objecten op externe machines of om externe objecten te activeren. Bovendien kunnen externe machines geen verbinding maken met objecten op de lokale machine. Als deze waarde is ingesteld op "J", is het mogelijk verbinding te maken, als client, met externe objecten (wanneer EnableRemoteConnect is ingesteld op "N", zoals hieronder is beschreven), of wordt volledige client/server-connectiviteit geboden (wanneer EnableRemoteConnect is ingesteld op "J", zoals hieronder is beschreven). EnableRemoteConnect (standaardwaarde = "N"). Hiermee worden COM-servers in staat gesteld om externe clients te ondersteunen. Als deze waarde is ingesteld op "J", kunnen verwijzingen naar interfaces voor lokale objecten worden doorgegeven aan externe clients en kunnen externe clients verbinding maken met uitgevoerde objecten. Als deze waarde is ingesteld op "N", kan deze machine wel verbinding maken met externe objecten maar kan niet functioneren als server: de machine kan geen verbinding maken met uitgevoerde objecten. Bovendien is de volgende registersleutel te vinden in HKEY_CLASSES_ROOT\CLSID: {bdc67890-4fc0-11d0-a805-00aa006d2ea4}\InstalledVersion. Bevat het versienummer van DCOM95 in de indeling "a,b,c,d". Deze waarde kan worden gebruikt door Internet Component Download om te bepalen of DCOM95 is geïnstalleerd. Deze waarde wordt tijdens de installatie toegevoegd aan het register en mag niet worden gewijzigd. Windows 95 gebruiken als host voor externe servers Windows 95 kan als host voor externe servers wordt gebruikt, met de volgende beperkingen: * Er is geen opstartfunctionaliteit beschikbaar. Het serverproces moet reeds draaien voordat een client er verbinding mee kan maken. * Als beveiligde verbindingen nodig zijn, moet de server (en indien wordt teruggebeld, de client) beschikken over toegangsbeheer op gebruikersniveau waarbij de naam van een beveiligingsvoorziening is ingesteld. * De registerwaarde "EnableRemoteConnect" moet zijn ingesteld op "J". De meest uitgebreide tests voor DCOM95 zijn uitgevoerd met de beveiligingsvoorziening voor het Windows NT-domein. Als u andere beveiligingsvoorzieningen gebruikt, kunt u tegen problemen aanlopen. Als u toegangsbeheer op gebruikersniveau wilt instellen, moet Filesec.vxd zijn geïnstalleerd. Dit bestand wordt over het algemeen geïnstalleerd op Windows 95- machines als u bestands- en printerdeling installeert. Als u toegangsbeheer op gebruikersniveau wilt inschakelen, opent u het dialoogvenster Netwerk in het Configuratiescherm, klikt u op het tabblad Toegangsbeheer, schakelt u het selectievakje Toegangsbeheer op gebruikersniveau in en geeft u de naam op van uw beveiligingsdomein. Dit kan van invloed zijn op de manier waarop u vanaf uw computer momenteel directories op het netwerk deelt. Raadpleeg de on line-documentatie voor meer details. Als er op het configuratiescherm van uw netwerkconfiguratie geen tabblad Toegangsbeheer beschikbaar is, moet u een netwerkclient-service installeren. Klik op het item Netwerkclients, installeren in de index van de on line Help voor informatie over het installeren van een netwerkclient. V. Herdistributie ----------------- Raadpleeg de richtlijnen voor herdistributie in de licentie-overeenkomt voor de eindgebruiker (license.txt) voor meer informatie over het herdistribueren van DCOM95. VI. Ondersteuning en hulpbronnen -------------------------------- Productondersteuning Als u een vraag hebt over een Microsoft-product, raadpleeg dan eerst: · de gedrukte productdocumentatie. · de online Help. · de LEESMIJ-bestanden. Deze bestanden worden tijdens de installatie van het programma naar de vaste schijf gekopieerd. In deze bestanden vindt u informatie die pas na het drukken van de productdocumentatie bekend is geworden. · elektronische informatiebronnen zoals het Microsoft Bulletin Board, Internet, cd-rom-abonnementen (MSDN/TechNet). · uw interne supportorganisatie, indien die aanwezig is. Als u er niet in slaagt een antwoord te vinden op uw vraag, kunt u contact opnemen met de Microsoft-vestiging in uw land. Microsoft Technical Support Microsoft Technical Support biedt u een groot aantal ondersteuningsmogelijkheden en geeft toegang tot technische ondersteuning van de hoogste kwaliteit. Microsoft onderkent dat verschillende gebruikers verschillende wensen voor ondersteuning hebben en dat is precies wat Microsoft u biedt. U kunt het type ondersteuning kiezen dat het beste aansluit op uw behoeften. De mogelijkheden variëren van jaarlijkse ondersteuningsprogramma's tot elektronische diensten. Microsoft Technical Support biedt diverse contractmogelijkheden voor particulieren en bedrijven. Informatie over Microsoft Technical Support kunt u aanvragen bij het Microsoft Support Info Centre, te bereiken onder de hieronder genoemde telefoonnummers of beschikbaar via de support website http://www.microsoft.com/benelux/support/. De onder Microsoft Technical Support vallende services zijn afhankelijk van de huidige door Microsoft vastgestelde prijzen, voorwaarden en bepalingen en kunnen zonder voorafgaande mededeling worden gewijzigd. Elektronische informatie Microsoft stelt informatie over producten ook elektronisch op verschillende manieren beschikbaar voor belangstellenden. Op de Download service en via Internet http://www.microsoft.com/benelux/support/ vindt u veel productinformatie, zowel technisch als commercieel, waardoor u vaak snel een antwoord kunt vinden en toegang kunt krijgen tot andere belangrijke informatie. Geregeld publiceren wij op deze media artikelen met richtlijnen en achtergrondinformatie omtrent vragen die bestaan over onze producten. Deze Download service is te bereiken via de hierna genoemde telefoonnummers. De volgende cd-rom-abonnementen, die u een schat aan technische informatie bieden en die u in staat stellen om snel een oplossing voor een technisch probleem te vinden, zijn verkrijgbaar: · Microsoft TechNet: een uitgebreide database met bekende problemen en hun oplossingen voor Microsoft-toepassingen en -besturingssystemen (TechNet). · Microsoft Developer Network: uitgebreide informatie voor (Microsoft Windows) ontwikkelaars (MSDN). Informatie over deze cd-rom-abonnementen kunt u aanvragen bij de hierna genoemde telefoonnummers maar ook beschikbaar via de support website http://www.microsoft.com/benelux/support/. Standaardsupport De standaardsupport op de producten wordt alleen verleend voor installatievragen, opstartvragen en het melden van onvolkomenheden in de producten. Vragen met betrekking tot netwerkinstallatie en implementatie vallen hierbuiten. Indien uw vraag buiten de standaardsupport valt, kunnen wij u tegen betaling helpen aan een antwoord op uw vraag over onze producten. Natuurlijk kunt u zich met dit laatste type vraag ook richten tot onze Microsoft Authorised Support Centres (ASC). Dit zijn bedrijven die door Microsoft zijn gecertificeerd omdat men over de kennis en kunde beschikt om onze producten te kunnen ondersteunen, installeren en optimaliseren volgens de wensen van de klant. Bel voor de Microsoft Authorised Support Centre die u het beste een antwoord op uw vraag kan geven naar Microsoft Information Center of maak een selectie via de support website http://www.microsoft.com/benelux/support/. Training Voor training op onze producten verwijzen wij u graag naar de trainingscentra die door ons zijn gecertificeerd, te herkennen als ATEC (Authorized Technical Education Center). Zij beschikken over een ruime ervaring en gekwalificeerde docenten. U zult hierdoor optimaler gebruik van uw producten kunnen maken en maximaal rendement uit uw investering kunnen halen. Bel voor een gecertificeerd Training Center bij u in de omgeving naar Microsoft Information Center. Contact opnemen met uw Microsoft-vestiging U kunt de Microsoft-vestigingen in de Benelux in de regel bereiken van maandag tot en met vrijdag, van 9.00 tot 12.00 uur en van 13.00 tot 17.00 uur (op vrijdag tot 16.00 uur), behalve op feestdagen, voor al uw vragen die vallen onder standaardsupport. Wanneer u Microsoft opbelt, dient u bij uw computer te zitten en de documentatie bij de hand te hebben. Zorg ervoor dat u antwoord kunt geven op de volgende vragen: · Wat is het versienummer van het Microsoft-product waarmee u werkt? (Te vinden via het menu Help met de opdracht Info of op het cd- of diskettelabel.) · Het unieke nummer van uw software (PID-nummer). (Te vinden via het menu Help met de opdracht Info of in de Microsoft-verpakking.) · Welke hardware gebruikt u (inclusief, indien van toepassing, netwerkhardware)? · Welk besturingssysteem gebruikt u? · Zijn er (fout-)berichten op het scherm verschenen en zo ja, wat is daarvan de exacte formulering? · Wat gebeurde er en waarmee was u bezig toen het probleem zich voordeed? · Hoe hebt u geprobeerd het probleem op te lossen? De adressen en telefoonnummers van de Microsoft-vestigingen in Nederland, België en Luxemburg luiden als volgt: Nederland Microsoft BV Telefoon: 020-5001500 Microsoft Information Center: 020-5001005 Microsoft Support Info Centre: 020-5001033 Microsoft Subscription Centre (MSDN): 020-5001037 Microsoft Subscription Centre (TechNet): 020-5001035 Internet: http://www.microsoft.com/benelux/support of ftp.microsoft.com Bulletin Board Service: 020-5001876 (max. 14k4 baud, 8N1, ANSI) Technische ondersteuning: 020-5001005 (Nederlands) 020-5001053 (Engels) België Microsoft NV Telefoon: 02-7303911 Microsoft Information Center: 02-4815252 Microsoft Support Info Centre: 02-5139979 Microsoft Subscription Centre (MSDN): 02-5138684 Microsoft Subscription Centre (TechNet): 02-5022176 Internet: http://www.microsoft.com/benelux/support of ftp.microsoft.com Bulletin Board Service: 02-7268545 (max. 14k4 baud, 8N1, ANSI) Technische ondersteuning: 02-5133274 (Nederlands) 02-5023432 (Engels) 02-5132268 (Frans) Luxemburg Microsoft NV Telefoon: +32 2-7303911 Microsoft Information Center: +32 2-4815252 Microsoft Support Info Centre: +32-2-5139979 Microsoft Subscription Centre (MSDN): +32-2-5138684 Microsoft Subscription Centre (TechNet): +32-2-5022176 Internet: http://www.microsoft.com/benelux/support of ftp.microsoft.com Bulletin Board Service: +32 2-7268545 (max. 14k4 baud, 8N1, ANSI) Technische ondersteuning: +32 2-5133274 (Nederlands) +32 2-5023432 (Engels) +32 2-5132268 (Frans) Gratis ondersteuning Nieuwsgroepen vormen een uitstekende plaats voor gratis ondersteuning door medegebruikers. Wanneer tijd en hulpmiddelen het toelaten, bezoeken ontwikkelaars, program managers, support engineers en test engineers van Microsoft deze site om feedback te verzamelen en vragen te beantwoorden of om misverstanden uit de weg te ruimen. Wij bieden geen enkele garantie dat u een antwoord van Microsoft zult ontvangen op welke vraag in welke nieuwsgroep dan ook. De volgende nieuwsgroepen kunnen worden gebruikt voor het stellen van vragen over DCOM95: * comp.os.ms-windows.programmer.ole * microsoft.public.win32.programmer.ole De e-maillijst van DCOM is een andere goede vorm van gratis ondersteuning door medegebruikers. Als u deel uitmaakt van een e-maillijst heeft dit als voordeel dat dit de plaats is waar Microsoft informatie over een bepaald onderwerp in een vroegtijdig stadium bekend zal maken. Ook dit is ondersteuning door medegebruikers, en hoewel Microsoft-medewerkers regelmatig hierin zullen grasduinen, bieden wij geen garantie dat u daadwerkelijk antwoord krijgt op uw vragen. Als u meer wilt weten over de e-maillijst van DCOM, kunt u onze pagina met e- maillijsten bekijken op http://www.microsoft.com/sitebuilder/resource/mail.asp. Feedback Eventuele opmerkingen of meldingen van bugs kunt u naar de e-maillijst van DCOM sturen. Hulpbronnen Aanvullende informatie over DCOM is beschikbaar via de introductiepagina van COM op http://www.microsoft.com/com/. VII. Lijst met bestanden ------------------------ Deze tabel bevat een lijst met de versienummers van bestanden die worden gedistribueerd met DCOM95. oleaut32.dll 2.40.4275 secur32.dll 4.10.1999 compobj.dll 2.3.2 ole2.dll 2.3.2 ole32.dll 4.71.2900 olecnv32.dll 4.71.2900 olethk32.dll 4.71.2900 rpcltc1.dll 4.71.2900 rpcltc5.dll 4.71.2900 rpcltccm.dll 4.71.2900 rpclts5.dll 4.71.2900 rpcltscm.dll 4.71.2900 rpcns4.dll 4.71.2900 rpcrt4.dll 4.71.2900 rpcss.exe 4.71.2900 storage.dll 2.3.2 stdole2.tlb 2.40.4275 stdole32.tlb 2.1 imagehlp.dll 4.00 dllhost.exe 4.71.2900 comcat.dll 5.0 iprop.dll 4.00 rpcmqcl.dll 4.71.2900 rpcmqsvr.dll 4.71.2900 olepro32.dll 5.0.4275 asycfilt.dll 2.40.4275 dcom2w98.dll 2.10.35.35 Deze tabel bevat een lijst met de versienummers van bestanden die worden gedistribueerd met DCM95CFG. dcomcnfg.exe 5.00.1603.0 ciscnfg.exe 4.71.2618